selenium+python设置爬虫 * 的方法
作者:Kosmoo 发布时间:2021-10-01 11:14:33
1. 背景
在使用selenium浏览器渲染技术,爬取网站信息时,一般来说,速度是很慢的。而且一般需要用到这种技术爬取的网站,反爬技术都比较厉害,对IP的访问频率应该有相当的限制。所以,如果想提升selenium抓取数据的速度,可以从两个方面出发:
第一,提高抓取频率,出现验证信息时进行破解,一般是验证码或者用户登录。
第二,使用多线程 + * , 这种方式,需要电脑有足够的内存和充足稳定的 * 。
2. 为chrome设置 *
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,是通过拨号动态产生的,时效性很短,一般在1~3分钟。对于scrapy这种并发度很高,又不需要登录的爬虫来说,非常合适,但是在浏览器渲染类爬虫中并不适用。
第二, * 的速度。因为selenium爬虫采用的是浏览器渲染技术,本身速度就很慢。如果选择的 * 速度较慢,就会大大增加爬取的时间。
第三,电脑内存要够大。因为chrome占内存较大,在并发度很高的情况下,容易造成浏览器崩溃,也就是程序崩溃。
第四,在程序结束时,调用 browser.quit( ) 清除浏览器缓存。
3. 需要用户名密码验证的代理
参考文章:
Selenium chrome配置代理Python版:https://www.jb51.net/article/151634.htm
GitHub:https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-Proxy
来源:https://blog.csdn.net/zwq912318834/article/details/78626739
猜你喜欢
- 引文: 长期以来,多媒体信息在计算机中都是以文件形式存放,由操作系统管理的,但是随着计算机网络,分布式计算的发展,对多媒体信息进行高效的管理
- B-Tree 索引不同的存储引擎也可能使用不同的存储结构,i如,NDB集群存储引擎内部实现使用了T-Tree结构存储这种索引,即使其名字是B
- 索引合并是mysql底层为我们提供的智能算法。了解索引合并的算法,有助于我们更好的创建索引。索引合并是通过多个range类型的扫描并且合并它
- Python提供了一些内建函数用于基本对象类型:cmp(),repr(),str(),type()和等同于repr()的('
- 在开发过程中我们需要将我们的数据通过图标的形式展现出来,接下来我为大家介绍一个有趣的框架:Echarts。这是一个使用JavaScript实
- 一、回顾一下前面《Oracle开发之窗口函数》中关于全统计一节,我们使用了Oracle提供的:sum(sum(tot_sales)) ove
- 一、匿名块和命名块◆PL/SQL块分为良好总:命名块和匿名块。◆匿名块:以declare或begin开始,每次执行匿名块都要通过客户端工具将
- 我们可以用DataFrame的apply函数实现对多列,多行的操作。需要记住的是,参数axis设为1是对列进行操作,参数axis设为0是对行
- python代码有一行标黄鼠标放在标黄的代码行会显示This code is unreachable(此代码无法访问)def do_teln
- 本文实例讲述了JavaScript设计模式之原型模式。分享给大家供大家参考,具体如下:从设计模式的角度讲,原型模式是用于创建对象的一种模式,
- 软件版本Python 2.7.13; Win 10场景描述1、使用python读取指定长度的文本;2、使用python读取某一范围内的文本。
- check.asp 代码如下:<% '''''''''
- 1.nginx使用哪种网络协议? nginx是应用层 我觉得从下往上的话 传输层用的是tcp/ip 应用层用的是http fastcgi负责
- 问题描述101/100,想要的结果是1,但是算出来的结果是1.01解决方案101 // 100结果图补充:python2 与 3:一般除法、
- 定义返回单值def my_abs(x): if x >= 0: return x &
- 1.基本信息Pandas 的 apply() 方法是用来调用一个函数(Python method),让此函数对数据对象进行批量处理。Pand
- Json简介JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Sta
- 索引初识最普通的情况,是为出现在where子句的字段建一个索引。为方便讲述,我们先建立一个如下的表。CREATE TABLE mytable
- 增加异常捕获,更容易现问题的解决方向import sslimport urllib.requestfrom bs4 import Beaut
- 系统存储过程,sp_executesql 语言在这里! sp_executesql 执行可以多次重用或动