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标准库之随机数 (math包、random包)介绍
Nov 25 Python
在Django的URLconf中进行函数导入的方法
Jul 18 Python
python实现中文转换url编码的方法
Jun 14 Python
利用python获取当前日期前后N天或N月日期的方法示例
Jul 30 Python
通过Pandas读取大文件的实例
Jun 07 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
Python操作列表常用方法实例小结【创建、遍历、统计、切片等】
Oct 25 Python
django框架使用views.py的函数对表进行增删改查内容操作详解【models.py中表的创建、views.py中函数的使用,基于对象的跨表查询】
Dec 12 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
Python类中的装饰器在当前类中的声明与调用详解
Apr 15 Python
python mock测试的示例
Oct 19 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 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小型企业库存管理系统的设计与实现代码
2011/05/16 PHP
php使浏览器直接下载pdf文件的方法
2013/11/15 PHP
屏蔽PHP默认设置中的Notice警告的方法
2016/05/20 PHP
在js中使用"with"语句中跨frame的变量引用问题
2007/03/08 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
javascript 解决表单仍然提交即使监听处理函数返回false
2010/03/14 Javascript
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
纯JS实现动态时间显示代码
2014/02/08 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
使用jsonp完美解决跨域问题
2014/11/27 Javascript
可以浮动某个物体的jquery控件用法实例
2015/07/24 Javascript
学习JavaScript设计模式之享元模式
2016/01/18 Javascript
前端微信支付js代码
2016/07/25 Javascript
AngularJS使用ng-repeat指令实现下拉框
2016/08/23 Javascript
Ionic默认的Tabs模板使用实例
2016/08/29 Javascript
Bootstrap简单表单显示学习笔记
2016/11/15 Javascript
js中编码函数:escape,encodeURI与encodeURIComponent详解
2017/03/21 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
bootstrap timepicker在angular中取值并转化为时间戳
2017/06/13 Javascript
详解vue 配合vue-resource调用接口获取数据
2017/06/22 Javascript
浅谈在react中如何实现扫码枪输入
2018/07/04 Javascript
vue 获取视频时长的实例代码
2019/08/20 Javascript
javascript实现异形滚动轮播
2019/11/28 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
js瀑布流布局的实现
2020/06/28 Javascript
vue接口请求加密实例
2020/08/11 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
python爬虫 爬取超清壁纸代码实例
2019/08/16 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
纽约21世纪百货官网:Century 21
2016/08/27 全球购物
锐步美国官方网站:Reebok美国
2018/01/10 全球购物
Python 中的 copy()和deepcopy()
2021/11/07 Python
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL
vue实现Toast组件轻提示
2022/04/10 Vue.js