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


Posted in Python onNovember 29, 2018

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版:https://3water.com/article/151634.htm

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
May 06 Python
Python中内建函数的简单用法说明
May 05 Python
Python数据可视化正态分布简单分析及实现代码
Dec 04 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
解决python3 json数据包含中文的读写问题
May 10 Python
Python中的TCP socket写法示例
May 11 Python
anaconda如何查看并管理python环境
Jul 05 Python
python实现连续变量最优分箱详解--CART算法
Nov 22 Python
python 利用turtle模块画出没有角的方格
Nov 23 Python
Python语言异常处理测试过程解析
Jan 08 Python
python 双循环遍历list 变量判断代码
May 04 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 #Python
利用python GDAL库读写geotiff格式的遥感影像方法
Nov 29 #Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 #Python
使用python判断你是青少年还是老年人
Nov 29 #Python
pycham查看程序执行的时间方法
Nov 29 #Python
pycharm在调试python时执行其他语句的方法
Nov 29 #Python
Selenium chrome配置代理Python版的方法
Nov 29 #Python
You might like
10个实用的PHP正则表达式汇总
2014/10/23 PHP
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
从零开始学习jQuery (三) 管理jQuery包装集
2011/02/23 Javascript
JavaScript自动设置IFrame高度的小例子
2013/06/08 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
浅析js设置控件的readonly与enabled属性问题
2013/12/25 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
javascript文本框内输入文字倒计数的方法
2015/02/24 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
2016/02/25 Javascript
javascript的几种继承方法介绍
2016/03/22 Javascript
js实现鼠标拖动功能
2017/03/20 Javascript
jquery实现tab键进行选择后enter键触发click行为
2017/03/29 jQuery
vue做网页开场视频的实例代码
2017/10/20 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
详解ES7 Decorator 入门解析
2019/02/18 Javascript
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
详解如何使用React Hooks请求数据并渲染
2020/10/18 Javascript
[02:16]DOTA2超级联赛专访Burning 逆袭需要抓住机会
2013/06/24 DOTA
python求pi的方法
2014/10/08 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
python中模块查找的原理与方法详解
2017/08/11 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
2017/12/14 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
python实现logistic分类算法代码
2020/02/28 Python
解决python使用list()时总是报错的问题
2020/05/05 Python
英国高级健康和美容产品零售商:Life and Looks
2019/08/01 全球购物
怎么样写好简历中的自我评价
2013/10/25 职场文书
怎么写有吸引力的自荐信
2013/11/17 职场文书
军训自我鉴定怎么写
2014/02/13 职场文书
融资合作协议书范本
2014/10/17 职场文书
小学教育见习报告
2014/10/31 职场文书
2014年车间工作总结
2014/11/21 职场文书
婚宴邀请函
2015/01/30 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
2016教师国培研修感言
2015/12/08 职场文书