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 相关文章推荐
比较详细Python正则表达式操作指南(re使用)
Sep 06 Python
Python中使用动态变量名的方法
May 06 Python
Python Socket编程详细介绍
Mar 23 Python
Python数据结构与算法之使用队列解决小猫钓鱼问题
Dec 14 Python
在python中将字符串转为json对象并取值的方法
Dec 31 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
对PyQt5中的菜单栏和工具栏实例详解
Jun 20 Python
Python定义函数时参数有默认值问题解决
Dec 19 Python
Pytorch 实现冻结指定卷积层的参数
Jan 06 Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 Python
Python按照list dict key进行排序过程解析
Apr 04 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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
PHP Array交叉表实现代码
2010/08/05 PHP
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
如何在symfony中导出为CSV文件中的数据
2011/10/06 PHP
浅析get与post的一些特殊情况
2014/07/28 PHP
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
基于jquery 的一个progressbar widge
2010/10/29 Javascript
原生Js实现按的数据源均分时间点幻灯片效果(已封装)
2010/12/28 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
javascript实现鼠标点击页面 移动DIV
2016/12/02 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
javascript trie前缀树的示例
2018/01/29 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
js代码实现轮播图
2020/05/04 Javascript
解决vue+elementui项目打包后样式变化问题
2020/08/03 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
python打包生成的exe文件运行时提示缺少模块的解决方法
2018/10/31 Python
Python实现Linux监控的方法
2019/05/16 Python
python模拟键盘输入 切换键盘布局过程解析
2019/08/15 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
tensorflow-gpu安装的常见问题及解决方案
2020/01/20 Python
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
澳大利亚设计的婴儿和女孩的衣服:Oobi
2018/12/16 全球购物
俄罗斯奢侈品牌衣服、鞋子和配饰的在线商店:INTERMODA
2020/07/17 全球购物
Android面试宝典
2013/08/06 面试题
优秀毕业生推荐信
2013/11/02 职场文书
餐饮业的创业计划书范文
2013/12/26 职场文书
九年级家长会邀请函
2014/01/15 职场文书
幼儿教师国培感言
2014/02/19 职场文书
python面向对象版学生信息管理系统
2021/06/24 Python
css常用字体属性与背景属性介绍
2022/02/28 HTML / CSS