selenium+python设置爬虫代理IP的方法
程序员文章站
2022-07-01 13:18:43
1. 背景
在使用selenium浏览器渲染技术,爬取网站信息时,一般来说,速度是很慢的。而且一般需要用到这种技术爬取的网站,反爬技术都比较厉害,对ip的访问频率应该...
1. 背景
在使用selenium浏览器渲染技术,爬取网站信息时,一般来说,速度是很慢的。而且一般需要用到这种技术爬取的网站,反爬技术都比较厉害,对ip的访问频率应该有相当的限制。所以,如果想提升selenium抓取数据的速度,可以从两个方面出发:
第一,提高抓取频率,出现验证信息时进行破解,一般是验证码或者用户登录。
第二,使用多线程 + 代理ip, 这种方式,需要电脑有足够的内存和充足稳定的代理ip 。
2. 为chrome设置代理ip
from selenium import webdriver chromeoptions = webdriver.chromeoptions() # 设置代理 chromeoptions.add_argument("--proxy-server=http://202.20.16.82:10152") # 一定要注意,=两边不能有空格,不能是这样--proxy-server = http://202.20.16.82:10152 browser = webdriver.chrome(chrome_options = chromeoptions) # 查看本机ip,查看代理是否起作用 browser.get("http://httpbin.org/ip") print(browser.page_source) # 退出,清除浏览器缓存 browser.quit()
注意事项:
第一,代理ip最好是稳定的固定ip,不要选动态ip。我们常用的爬虫ip是高匿名动态ip,是通过拨号动态产生的,时效性很短,一般在1~3分钟。对于scrapy这种并发度很高,又不需要登录的爬虫来说,非常合适,但是在浏览器渲染类爬虫中并不适用。
第二,代理ip的速度。因为selenium爬虫采用的是浏览器渲染技术,本身速度就很慢。如果选择的代理ip速度较慢,就会大大增加爬取的时间。
第三,电脑内存要够大。因为chrome占内存较大,在并发度很高的情况下,容易造成浏览器崩溃,也就是程序崩溃。
第四,在程序结束时,调用 browser.quit( ) 清除浏览器缓存。
3. 需要用户名密码验证的代理
参考文章:
selenium chrome配置代理python版:
github:https://github.com/robindev/selenium-chrome-http-private-proxy
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。