selenium IE浏览器爬虫小结

本文详细讲述了如何下载并配置IEDriverServer以解决在Python Selenium中使用IE11进行爬虫时遇到的问题,包括调整缩放比例、安全模式和注册表修改。同时,对比了Chrome、Firefox的Driver使用方法和Selenium的优缺点。
Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

1、下载IEDriverServer

IE驱动地址: http://selenium-release.storage.googleapis.com/index.html?path=3.141/

进入索引页,首先选择版本号,IEDriverServer的版本号和Selenium的版本号一定要一致,因为我选择的是selenium-3.30,所以IEDriverServer也选择的是3.30版本的。注意win32和X64的区别。打开后的页面如下所示:

 

 2、IEDriverServer.exe驱动IE11遇到的问题及解决方法

IE浏览器版本号:

 

查询资料得到以下解决方法,按照此法,立刻解决问题.为加深印象,特此记录,方法转自此博客,https://www.cnblogs.com/feiquan/p/8531618.html

一共需要做4处修改:

1.缩放100%

 

2.针对windows vista和windows 7上的IE7或者更高的版本,必须在IE选项设置的安全页中,4个区域的启用保护模式的勾选都去掉(或都勾上),即保持四个区域的保护模式是一致的。如下图所示:

 

 

3.针对IE10和更高的版本,必须在IE选项设置中的高级页中,取消增强保护模式(一般默认就没有勾选,这里确认下即可)。如下图所示: 

 

 

4.针对IE11,需要修改注册表。

 

如果是32位的windows,key值为

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE

如果是64位的windows,key值为

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet 
Explorer\Main\FeatureControl\FEATURE_BFCACHE

如果key值不存在,就添加。之后在key内部创建一个iexplorer.exe,DWORD类型,值为0,我的windows是64位的,修改后的注册表如下图所示

 

 

以上4处,修改设置完成后,即可解决

3、python+selenium调用浏览器(IE-Chrome-Firefox)实现爬虫功能

 首先,得先明确,为什么要采用selenium来模拟登陆网页。最主要的原因我认为还是在于通过这种模拟登录方式获取的页面html代码,可以把js里的内容也获取到,而通过urllib方式模拟登录的方式虽然也可以伪装成浏览器的形式获取页面html代码,但是这里面的js,css代码是没有的,也就是没有动态的内容,达不到全面抓取数据的目的;当然除了selenium这种方式外,还有其他的途径也能获取到js等动态代码,这里先不做介绍了,以后再分别细说。

    说了selenium的优点,就需要再强调一下它的不足,selenium调用浏览器时,跟我们手动打开浏览器效果一样,你可以想想自己打开浏览器时的镜像,从开启到加载完毕,要耗费好几秒时间,对于一般的脚本来说,好几秒可是很长的时间了,但是它就是这么傲娇,加载不完就别想玩后面的;如果你只是想偶尔打开一次抓一次,几秒倒也没什么,但如果你要循环执行的话,这个方法的效率就是低的不要不要的了。

    总之,还是要开发人员自己权衡利弊,决定是否使用。

    好了,接下来我们就来介绍python环境下,如何利用selenium体统的webdriver来浏览三大常用浏览器:IE,Chrome,Firefox。

    1 利用Chrome浏览器,安装的chrome浏览器是没有没有提供现成的driver的,因此需要我们自己下载ChromeDriver.exe,这里可以有下载地址,下载完后把它放到chrome浏览器所在的安装目录下就可以了,保证让他跟chrome.exe呆一起就可以了。相关脚本如下
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os
chromedriver = "D:\Program Files\ChromeGAE\Chrome\chromedriver.exe"
os.environ["webdriver.chrome.driver"] = chromedriver
browser = webdriver.Chrome(chromedriver)
url = "http://www.baidu.com"
browser.get(url)


这样基本就可以直接用了。
    2 利用IE浏览器,IE浏览器和chrome比较相似,也需要我们自己去找到Driver,名字是IEDriverServer.exe,这个随便一百度也能找到,就不放连接了,下载后跟chrome那里一样,也是放到ieexplore.exe的同级目录下,这个一般是在C:\Program Files\Internet Explorer下,毕竟是系统自带的嘛。脚本如下

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import os

IEdriver= "C:\Program Files\Internet Explorer\IEDriverServer.exe"
os.environ["webdriver.ie.driver"] = IEdriver
browser = webdriver.Ie(IEdriver)
url = "http://www.baidu.com"
browser.get(url)

    3 利用Firefox浏览器,firefox这个相比起前面两个就方便多了,果然是亲开发的良心浏览器,自带driver光环,拿来就可以用。
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
<pre name="code" class="html">browser = webdriver.Firefox()
<pre name="code" class="html">url = "http://www.baidu.com"
<pre name="code" class="html">browser.get(url)
是不是方便多了,但是!但是!但是!这里不得不说的是,firefox也是有大坑的,firefox会经常更新,一单更新了,你的selenium没跟到位,那就费了,银次你需要关闭firefox的自动更新,并且将firefox保持在一个较低的版本(45以前的应该还是可以的),我当初遇到的问题就是firefox更新后,脚本可以调用浏览器打开,但是却打不开url,各种找原因,看到其他网友就说是版本太高的原因,方法就是再找到老版本的firefox安装。
    好了,就说这些了,如有不对之处还望多批评指正。
————————————————
版权声明:本文为CSDN博主「玲珑算局」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lukaishilong/article/details/51888765

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值