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学习资料
Feb 08 Python
详解详解Python中writelines()方法的使用
May 25 Python
python简单实现计算过期时间的方法
Jun 09 Python
Python 查看文件的编码格式方法
Dec 21 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
Python线性方程组求解运算示例
Jan 17 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
Python实现的基于优先等级分配糖果问题算法示例
Apr 25 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
详解Python3 基本数据类型
Apr 19 Python
使用python批量转换文件编码为UTF-8的实现
Apr 03 Python
解决jupyter notebook import error但是命令提示符import正常的问题
Apr 15 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
2006/12/14 PHP
PHP入门之常量简介和系统常量
2014/05/12 PHP
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP实现验证码校验功能
2017/11/16 PHP
js 有框架页面跳转(target)三种情况下的应用
2013/04/09 Javascript
ParseInt函数参数设置介绍
2014/01/02 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
JS实现物体带缓冲的间歇运动效果示例
2016/12/22 Javascript
jQuery实现通过方向键控制div块上下左右移动的方法【测试可用】
2018/04/26 jQuery
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
vant picker+popup 自定义三级联动案例
2020/11/04 Javascript
[01:18]一目了然!DOTA2DotA快捷操作对比第一弹
2014/07/01 DOTA
[42:35]2018DOTA2亚洲邀请赛3月30日 小组赛A组 VG VS OpTic
2018/03/31 DOTA
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
Python语言的12个基础知识点小结
2014/07/10 Python
简述Python2与Python3的不同点
2018/01/21 Python
python networkx 根据图的权重画图实现
2019/07/10 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
CSS3 选择器 基本选择器介绍
2012/01/21 HTML / CSS
css3 transform属性详解
2014/09/30 HTML / CSS
HTML5上传文件显示进度的实现代码
2012/08/30 HTML / CSS
html5-Canvas可以在web中绘制各种图形
2012/12/26 HTML / CSS
html5指南-5.使用web storage存储键值对的数据
2013/01/07 HTML / CSS
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
春节联欢会策划方案
2014/05/16 职场文书
2015年元旦演讲稿
2014/09/12 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
个人整改方案范文
2014/10/25 职场文书
2014年酒店年度工作总结
2014/12/10 职场文书
2015年公路路政个人工作总结
2015/07/24 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python