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使用pylab库实现绘制直方图功能示例
Jun 01 Python
Python数据分析matplotlib设置多个子图的间距方法
Aug 03 Python
Python图像处理之颜色的定义与使用分析
Jan 03 Python
对python dataframe逻辑取值的方法详解
Jan 30 Python
python多线程共享变量的使用和效率方法
Jul 16 Python
讲解Python3中NumPy数组寻找特定元素下标的两种方法
Aug 04 Python
Python中字典与恒等运算符的用法分析
Aug 22 Python
Python使用循环神经网络解决文本分类问题的方法详解
Jan 16 Python
python range实例用法分享
Feb 06 Python
Python描述符descriptor使用原理解析
Mar 21 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
pycharm远程连接vagrant虚拟机中mariadb数据库
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生成静态页面详解
2006/12/05 PHP
PHP延迟静态绑定示例分享
2014/06/22 PHP
php文件缓存类汇总
2014/11/21 PHP
用于自动添加Digg This!按钮的JavaScript
2006/12/23 Javascript
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
javascript处理a标签超链接默认事件的方法
2015/06/29 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
Bootstrap 响应式实用工具实例详解
2017/03/29 Javascript
使用vue与jquery实时监听用户输入状态的操作代码
2017/09/19 jQuery
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
JavaScript中的"=、==、==="区别讲解
2019/01/22 Javascript
大转盘抽奖小程序版 转盘抽奖网页版
2020/04/16 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
JS数据类型分类及常用判断方法
2020/11/19 Javascript
详解详解Python中writelines()方法的使用
2015/05/25 Python
python 调用win32pai 操作cmd的方法
2017/05/28 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
Python简易版图书管理系统
2019/08/12 Python
numpy:找到指定元素的索引示例
2019/11/26 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
2020/01/18 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
2020/06/29 Python
python中Django文件上传方法详解
2020/08/05 Python
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
印度首个本地在线平台:nearbuy
2019/03/28 全球购物
妇产医师自荐信
2014/01/29 职场文书
调解员先进事迹材料
2014/02/07 职场文书
建筑结构施工求职信
2014/07/11 职场文书
2016新年慰问信范文
2015/03/25 职场文书
党风廉政建设心得体会(2016最新版)
2016/01/22 职场文书
python实现进度条的多种实现
2021/04/29 Python
Jmerte 分布式压测及分布式压测配置
2022/04/30 Java/Android