本篇文章为大家展示了在Python爬虫中如何将PhantomJS伪装成Chrome浏览器,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
10年积累的成都网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有伊金霍洛免费网站建设让你可以放心的选择与我们合作。
前言
在写爬虫的过程中,出于系统环境或是效率的问题,我们经常使用PhantomJS作为Selenium操纵的浏览器webdriver,而不是直接使用Chrome或FireFox的webdriver,尽管后者更加直观。
PhantomJS的优点虽然很多,但是缺点却也不少,有一个不能称之为缺点的缺点就是,PhantomJS的浏览器标识是“PhantomJS”(勇敢的做自己竟然有错……:))
PhantomJS的标识本没有什么问题,但是在现在越来越多的网站不断升级自己的反爬虫技术的情况下,PhantomJS显然成为了一个和“requests”一样的靶子。
只要服务器后台识别到访问者的User-Agent为PhantomJS,就有可能被服务器判定为爬虫行为,而导致爬虫失效。
如同在requests中修改header头域以伪装成浏览器一样,我们可以在Selenium中将PhantomJS的浏览器标识修改为任意浏览器的标识。
PhantomJS的浏览器标识
首先来看看PhantomJS的浏览器标识是怎样的。
http://service.spiritsoft.cn/ua.html是一个获取浏览器标识User-Agent的网站,访问它就会显示当前使用的浏览器的标识:
我们使用Selunium操纵PhantomJS访问http://service.spiritsoft.cn/ua.html,看看返回的结果:
很明显的有PhantomJS的痕迹。接下来,我们对PhantomJS的浏览器标识进行修改。
伪装成Chrome
引入一个关键的模块——DesiredCapabilities:
这个模块是干什么用的呢?我们看看源码的解释:
描述了一系列封装的浏览器属性的键值对,大致就是用来设置webdriverde的属性。我们使用它来设置PhantomJS的User-Agent。
首先将DesiredCapabilities转换为一个字典,方便添加键值对:
然后添加一个浏览器标识的键值对:
最后,在实例化PhantomJS中设为参数:
完整的代码如下:
我们运行一下代码:
成功地将PhantomJS标识为了Chrome浏览器。
上述内容就是在Python爬虫中如何将PhantomJS伪装成Chrome浏览器,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。