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 相关文章推荐
web.py中调用文件夹内模板的方法
Aug 26 Python
python使用cPickle模块序列化实例
Sep 25 Python
Python实现的ini文件操作类分享
Nov 20 Python
Python的shutil模块中文件的复制操作函数详解
Jul 05 Python
python文件名和文件路径操作实例
Sep 29 Python
python先序遍历二叉树问题
Nov 10 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
Jan 03 Python
python用TensorFlow做图像识别的实现
Apr 21 Python
Selenium 配置启动项参数的方法
Dec 04 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
Python Flask搭建yolov3目标检测系统详解流程
Nov 07 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 面向对象程序设计(oop)学习笔记 (四) - 异常处理类Exception
2014/06/12 PHP
php preg_match的匹配不同国家语言实例
2016/12/29 PHP
PHP 计算两个特别大的整数实例代码
2018/05/07 PHP
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
javascript 页面只自动刷新一次
2009/07/10 Javascript
Javascript load Page,load css,load js实现代码
2010/03/31 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
基于jquery的给文章加入关键字链接
2010/10/26 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
JavaScript中双叹号!!作用示例介绍
2014/09/21 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
JS实现带鼠标效果的头像及文章列表代码
2015/09/27 Javascript
jQuery3.0中的buildFragment私有函数详解
2016/08/16 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
js-FCC算法-No repeats please字符串的全排列(详解)
2017/05/02 Javascript
利用JavaScript对中文(汉字)进行排序实例详解
2017/06/18 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
JavaScript中的垃圾回收与内存泄漏示例详解
2019/05/02 Javascript
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
实例讲解React 组件
2020/07/07 Javascript
Python threading多线程编程实例
2014/09/18 Python
详解Python pygame安装过程笔记
2017/06/05 Python
Python实现模拟浏览器请求及会话保持操作示例
2018/07/30 Python
使用python模拟命令行终端的示例
2019/08/13 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
英语专业大学生求职简历的自我评价
2013/10/18 职场文书
汽车运用工程毕业生自荐信
2013/10/29 职场文书
毕业自我鉴定范文
2013/11/06 职场文书
自我鉴定怎么写
2014/01/12 职场文书
应聘面试自我评价
2014/01/24 职场文书
公益广告宣传方案
2014/02/28 职场文书
环保倡议书500字
2014/05/15 职场文书
师德标兵事迹材料
2014/12/19 职场文书
2016年社区综治宣传月活动总结
2016/03/16 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python