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根据文件大小打log日志
Oct 09 Python
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
使用FastCGI部署Python的Django应用的教程
Jul 22 Python
深入理解Python中的super()方法
Nov 20 Python
python使用Tkinter实现在线音乐播放器
Jan 30 Python
Python元组常见操作示例
Feb 19 Python
python 动态迁移solr数据过程解析
Sep 04 Python
python 计算积分图和haar特征的实例代码
Nov 20 Python
python 实现人和电脑猜拳的示例代码
Mar 02 Python
用python实现名片管理系统
Jun 18 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
Python 实现国产SM3加密算法的示例代码
Sep 21 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
在apache下限制每个虚拟主机的并发数!!!!
2006/10/09 PHP
Apache设置虚拟WEB
2006/10/09 PHP
推荐几款用 Sublime Text 开发 Laravel 所用到的插件
2014/10/30 PHP
php上传文件常见问题总结
2015/02/03 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
javascript中对对层的控制
2006/12/29 Javascript
修复IE9&safari 的sort方法
2011/10/21 Javascript
导航跟随滚动条置顶移动示例代码
2013/09/11 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
JQuery菜单效果的两个实例讲解(3)
2015/09/17 Javascript
jquery实现简单实用的弹出层效果代码
2015/10/15 Javascript
js 获取元素所有兄弟节点的实现方法
2016/09/06 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
微信小程序开发之圆形菜单 仿建行圆形菜单实例
2016/12/12 Javascript
Ajax异步文件上传与NodeJS express服务端处理
2017/04/01 NodeJs
JavaScript反弹动画效果的实现代码
2017/07/13 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
了解重排与重绘
2019/05/29 Javascript
JS JQuery获取data-*属性值方法解析
2020/09/01 jQuery
深入理解Python 关于supper 的 用法和原理
2018/02/28 Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
2018/04/06 Python
Django中的forms组件实例详解
2018/11/08 Python
pygame游戏之旅 调用按钮实现游戏开始功能
2018/11/21 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
物理力学求职信
2014/02/18 职场文书
班班通项目实施方案
2014/02/25 职场文书
团支部建设方案
2014/05/02 职场文书
建材投资建议书
2014/05/16 职场文书
思想品德评语大全
2014/12/31 职场文书
2015年统战工作总结
2015/05/19 职场文书
jQuery class属性操作addClass()与removeClass()、hasClass()、toggleClass()
2021/03/31 jQuery
根德5570型九灯四波段立体声收音机是电子管收音机的楷模 ? 再论5570
2022/04/05 无线电
Android在Sqlite3中的应用及多线程使用数据库的建议
2022/04/24 Java/Android