admin管理员组

文章数量:1565353

1、下载IEDriverServer

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

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

 

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

IE浏览器版本号:

 

查询资料得到以下解决方法,按照此法,立刻解决问题.为加深印象,特此记录,方法转自此博客,https://wwwblogs/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.webdrivermon.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"
browser.get(url)


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

from selenium import webdriver
from selenium.webdrivermon.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"
browser.get(url)

    3 利用Firefox浏览器,firefox这个相比起前面两个就方便多了,果然是亲开发的良心浏览器,自带driver光环,拿来就可以用。
from selenium import webdriver
from selenium.webdrivermon.keys import Keys
<pre name="code" class="html">browser = webdriver.Firefox()
<pre name="code" class="html">url = "http://www.baidu"
<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/lukaishilong/article/details/51888765

 

本文标签: 爬虫小结浏览器selenium