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中日期和时间格式化输出的方法小结
Mar 19 Python
Python内置函数——__import__ 的使用方法
Nov 24 Python
Python爬虫学习之获取指定网页源码
Jul 30 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
Aug 01 Python
Django框架下静态模板的继承操作示例
Nov 08 Python
解决torch.autograd.backward中的参数问题
Jan 07 Python
python 实现 hive中类似 lateral view explode的功能示例
May 18 Python
利用Python实现斐波那契数列的方法实例
Jul 26 Python
Python如何输出百分比
Jul 31 Python
python中判断文件结束符的具体方法
Aug 04 Python
使用Python实现音频双通道分离
Dec 25 Python
Python基于百度AI实现抓取表情包
Jun 27 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清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
PHP 快速排序算法详解
2014/11/10 PHP
php操作mongoDB实例分析
2014/12/29 PHP
[原创]解决wincache不支持64位PHP5.5/5.6的问题(提供64位wincache下载)
2016/06/22 PHP
php基于PDO实现功能强大的MYSQL封装类实例
2017/02/27 PHP
PHP面向对象五大原则之接口隔离原则(ISP)详解
2018/04/04 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
使用jQuery.fn自定义jQuery翻页插件
2013/01/20 Javascript
JavaScript获取DOM元素的11种方法总结
2015/04/25 Javascript
js实现字符串和数组之间相互转换操作
2016/01/12 Javascript
angular4中关于表单的校验示例
2017/10/16 Javascript
javascript将非数值转换为数值
2018/09/13 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
Python中协程用法代码详解
2018/02/10 Python
Python读取properties配置文件操作示例
2018/03/29 Python
Python中的二维数组实例(list与numpy.array)
2018/04/13 Python
python3库numpy数组属性的查看方法
2018/04/17 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
python requests库爬取豆瓣电视剧数据并保存到本地详解
2019/08/10 Python
Django admin禁用编辑链接和添加删除操作详解
2019/11/15 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
美国知名的隐形眼镜电商:Contacts America
2019/11/19 全球购物
户籍证明的格式
2014/01/13 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
个人总结格式范文
2015/03/09 职场文书
幼儿园安全教育月活动总结
2015/05/08 职场文书
工作一年自我鉴定
2019/06/20 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
如何利用opencv判断两张图片是否相同详解
2021/07/07 Python