本文主要介绍在selenium python中设置爬虫代理IP的方法,通过示例代码进行了非常详细的介绍,对大家的学习或工作有一定的参考价值。有需要的朋友就跟着下面的边肖学习吧。
1. 背景
一般来说,使用selenium浏览器渲染技术抓取网站信息时,速度很慢。而且一般需要用这种技术抓取的网站都有很强的反抓取技术,IP的访问频率应该是相当有限的。所以,如果想提高selenium的数据抓取速度,可以从两个方面入手:
第一,提高抓取频率,出现验证信息就破解,一般是验证码或者用户登录。
其次,使用多线程代理IP。这样电脑就需要足够的内存和足够稳定的代理IP。
2. 为chrome设置代理IP
从selenium导入web驱动程序
chromeOptions=webdriver。ChromeOptions()
#设置代理
chrome options . add _ argument('-proxy-server=http://202 . 20 . 16 . 82:10152 ')
#一定要注意=两边不能有空格,不能是这样的-proxy-server=http://202 . 20 . 16 . 82:10152
浏览器=webdriver。chrome(chrome _ options=chrome options)
#检查本地ip以查看代理是否工作。
browser . get(' http://http bin . org/IP ')
打印(浏览器.页面_源)
#退出并清除浏览器缓存。
browser.quit()
注意事项:
第一,代理IP应该是稳定的固定IP,而不是动态IP。我们常用的爬虫IP是高度匿名的动态IP,通过拨号动态生成,时效性很短,一般1~3分钟。非常适合scrapy这种高并发、无需登录的爬虫,但不适合浏览器渲染爬虫。
第二,代理IP的速度。因为selenium爬虫采用浏览器渲染技术,所以速度很慢。如果选择的代理IP速度慢,会大大增加爬行时间。
第三,电脑内存要足够大。由于chrome占用大量内存,在高并发的情况下,很容易造成浏览器崩溃,也就是程序崩溃。
第四,在程序结束时,调用browser.quit()清除浏览器缓存。
3. 需要用户名密码验证的代理
参考文章:
硒铬配置代理Python版本:https://www.jb51.net/article/151634.htm
吉图布:https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-Proxy
这就是本文的全部内容。希望对大家的学习有帮助,支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。