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
猜你喜欢
- 如下所示:#!/usr/bin/python# -*- coding:utf8 -*-import xlwtimport osworkboo
- 1.创建空字典>>> dic = {}>>> type(dic)<type 'dict
- 1.字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66
- 一开始自学Python的numpy、pandas时候,索引和切片把我都给弄晕了,特别是numpy的切片索引、布尔索引和花式索引,简直就是大乱
- 鉴于ASP脚本语言是在服务器端IIS或PWS中解释和运行,并可动态生成普通的HTML网页,然后再传送到客户端供浏览的这一特点。我们要在本机上
- 为什么要引入线程池如果在程序中经常要用到线程,频繁的创建和销毁线程会浪费很多硬件资源,所以需要把线程和任务分离。线程可以反复利用,省去了重复
- 本文实例为大家分享了python实现抽奖小程序的具体代码,供大家参考,具体内容如下设计一个抽奖服务 背景:有x个奖品,要求在y天内
- 本文实例讲述了python概率计算器实现方法。分享给大家供大家参考。具体实现方法如下:from random import randrang
- Python2默认是不支持中文的,一般我们在程序的开头加上#-*-coding:utf-8-*-来解决这个问题,但是在我用open()方法打
- 问题描述:用 Python 实现函数 count_words(),该函数输入字符串 s 和数字 n,返回 s 中 n 个出现频率
- 将Django与其他现有认证系统的用户名和密码或者认证方法进行整合是可以办到的。例如,你所在的公司也许已经安装了LDAP,并且为每一个员工都
- 将Copy of ********.bmp或者Copy of Copy of ********.bmp 此类文件统一命名为********0
- 安装模块如果使用的是Linux系统,并且安装了pip,可以直接使用pip安装xlrd, xlwt:pip install xlwtpip i
- [原文地址] VS 2008 Performance Improvements[原文发表时间] Thursday, September 27
- 从内部来看,每个session都只是一个普通的Django model(在 django.contrib.sessions.models 中
- 场景:按照github文档上启动一个flask的app,默认是用5000端口,如果5000端口被占用,启动失败。样例代码:from flas
- 写过稍微大型一点 ASP 的人都知道,Session 这个对象真是好用,它可以用来记录使用者私有的资料变量,既安全又方便。但是你真的知道 S
- 导语“超级玛丽”——有多少人还记得这款经典游戏?那个戴帽子的大胡子穿着背带裤的马里奥!带您重温经典的回忆,超级马里奥拯救不开心!炫酷来袭。如
- 在while和for循环过程中,为了更加灵活地控制循环的次数,python提供了break和continue循环控制语句。1. break
- next()方法当一个文件被用作迭代器,典型例子是在一个循环中被使用,next()方法被反复调用。此方法返回下一个输入行,或引发