selenium+python设置爬虫代理IP的方法

1. 设置背景

在使用selenium浏览器渲染技术,当我们爬取某个网站的信息的时候,在一般情况下速度都不是特别的快。而且需要利用selenium浏览器渲染技术爬取的网站,反爬虫的应对技术都比较厉害,对IP访问频率有很高程度的限制。所以,如果想提升selenium抓取数据的速度,可以从两个方面出发:

第一方面, 抓取频率要提高,破解出现的验证信息,一般都是验证码或者是用户登陆 。

第二方面,使用多线程 + 代理IP, 这种方式,需要电脑有足够的内存和充足稳定的代理IP 

2. 为chrome设置代理IP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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,是通过拨号动态产生的,时效性非常的短,一般都是在3分钟左右。对于scrapy这种并发度很高,又不需要登录的爬虫来说,非常合适,但是在浏览器渲染类爬虫中并不适用。

第二,选择速度较快的代理IP。因为selenium爬虫采用的是浏览器渲染技术,这种浏览器渲染技术速度就本身就很慢。如果选择的代理IP速度较慢,爬取的时间就会进一步增加。

第三,要有足够大的电脑内存。因为chrome占内存较大,在并发度很高的情况下,容易造成浏览器崩溃,也就是程序崩溃。

第四,在程序结束时,调用 browser.quit( ) 清除浏览器缓存。

3. 需要用户名密码验证的代理

参考文章: 

Selenium chrome配置代理Python版:https://www.jb51.net/article/151634.htm

GitHub:https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-Proxy

posted @ 2019-01-03 11:15  犀牛代理  阅读(17794)  评论(1编辑  收藏  举报