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算法学习之桶排序算法实例(分块排序)
Dec 18 Python
将Python的Django框架与认证系统整合的方法
Jul 24 Python
ActiveMQ:使用Python访问ActiveMQ的方法
Jan 30 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
Aug 30 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
Django admin 实现search_fields精确查询实例
Mar 30 Python
Keras实现DenseNet结构操作
Jul 06 Python
Pycharm自带Git实现版本管理的方法步骤
Sep 18 Python
5款实用的python 工具推荐
Oct 13 Python
浅析Python中的套接字编程
Jun 22 Python
python实现双向链表原理
May 25 Python
Python中的 No Module named ***问题及解决
Jul 23 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
超外差式晶体管收音机的组装与统调
2021/03/01 无线电
防止MySQL注入或HTML表单滥用的PHP程序
2009/01/21 PHP
PHPMailer邮件发送的实现代码
2013/05/04 PHP
PHP实现防盗链的方法分析
2017/07/25 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
JQuery在页面中添加和除移DOM示例代码
2013/06/24 Javascript
使用jquery.upload.js实现异步上传示例代码
2014/07/29 Javascript
简易的投票系统以及js刷票思路和方法
2015/04/07 Javascript
jQuery与getJson结合的用法实例
2015/08/07 Javascript
JS实现的表格行鼠标点击高亮效果代码
2015/11/27 Javascript
jQuery prototype冲突的2种解决方法(附demo示例下载)
2016/01/21 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
简单的js计算器实现
2016/10/26 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
vuex的使用及持久化state的方式详解
2018/01/23 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
使用Vue-cli 中为单独页面设置背景图片铺满全屏
2020/07/17 Javascript
解决vuex数据页面刷新后初始化操作
2020/07/26 Javascript
js实现弹窗猜数字游戏
2020/11/26 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
Python入门_浅谈字符串的分片与索引、字符串的方法
2017/05/16 Python
Python调用ctypes使用C函数printf的方法
2017/08/23 Python
python机器学习理论与实战(四)逻辑回归
2018/01/19 Python
HTML5 和小程序实现拍照图片旋转、压缩和上传功能
2018/10/08 HTML / CSS
深入解析HTML5使用SVG图像时的viewBox属性用法
2015/09/02 HTML / CSS
英国花园药房: The Garden Pharmacy
2017/12/28 全球购物
触发器(trigger)的功能都有哪些?写出一个触发器的例子
2012/09/17 面试题
企业申诉管理制度
2014/01/30 职场文书
学生安全责任书范本
2014/07/24 职场文书
初中生旷课检讨书范文
2014/10/06 职场文书
2015中秋节慰问信范文
2015/03/23 职场文书
创业的9条正确思考方式
2019/08/26 职场文书
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang