第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制
2023-09-14 08:58:24 时间
第三百四十九节,Python分布式爬虫打造搜索引擎Scrapy精讲—cookie禁用、自动限速、自定义spider的settings,对抗反爬机制
cookie禁用
就是在Scrapy的配置文件settings.py里禁用掉cookie禁用,可以防止被通过cookie禁用识别到是爬虫,注意,只适用于不需要登录的网页,cookie禁用后是无法登录的
settings.py里禁用掉cookie禁用
COOKIES_ENABLED = False 禁用cookie
# Disable cookies (enabled by default) COOKIES_ENABLED = False
自动限速
Scrapy默认没有限速的,只要遇到URL就访问,没有间隙
自动限速(AutoThrottle)扩展
settings.py里设置
DOWNLOAD_DELAY = 下载器在下载同一个网站下一个页面前需要等待的时间。该选项可以用来限制爬取速度, 减轻服务器压力。同时也支持小数(单位秒)
# Configure a delay for requests for the same website (default: 0) # See http://scrapy.readthedocs.org/en/latest/topics/settings.html#download-delay # See also autothrottle settings and docs DOWNLOAD_DELAY = 10
AUTOTHROTTLE_ENABLED = True 开启限速,启用AutoThrottle扩展
# Enable and configure the AutoThrottle extension (disabled by default) # See http://doc.scrapy.org/en/latest/topics/autothrottle.html AUTOTHROTTLE_ENABLED = True
自定义spider的settings,也就是为每一个爬虫单独设置配置文件里的值,将覆盖掉settings.py里的相同设置
custom_settings = {键值对} 为每一个爬虫单独设置配置文件里的值,将覆盖掉settings.py里的相同设置,在爬虫文件里设置
举例:
# -*- coding: utf-8 -*- import scrapy from scrapy.http import Request,FormRequest class PachSpider(scrapy.Spider): #定义爬虫类,必须继承scrapy.Spider name = 'pach' #设置爬虫名称 allowed_domains = ['www.kuaidaili.com'] #爬取域名 custom_settings = { "COOKIES_ENABLED": True #覆盖掉settings.py里的相同设置,开启COOKIES } def start_requests(self): #起始url函数,会替换start_urls """第一次请求一下登录页面,设置开启cookie使其得到cookie,设置回调函数""" return [Request( url='http://www.kuaidaili.com/free/inha/2/', meta={'cookiejar':1}, #开启Cookies记录,将Cookies传给回调函数 callback=self.parse )] def parse(self, response): title = response.xpath('//*[@id="list"]/table/tbody/tr')
相关文章
- python_字典列表嵌套的排序问题
- Python爬虫数据抽取(三):pyquery库「建议收藏」
- python监控网站更新_Python 通过网站search功能监控网站内容更新[通俗易懂]
- python scrapy 爬虫实例_scrapy爬虫完整实例
- Python: “股票数据定向爬虫”实例
- 浅析python爬虫(下)
- python selenium 实现自动输入信息报名
- 【说站】python如何快速建立生成器
- python语言关键字是_Python 关键字
- Python在线编写以及文档查看工具Jupyter
- 下列python语句的输出结果是print_下列 Python语句的输出结果是「建议收藏」
- 【视频】Python用LSTM长短期记忆神经网络对不稳定降雨量时间序列进行预测分析|数据分享|附代码数据
- Wing Pro 9 for Mac(Python集成开发工具)
- 谷歌浏览器WebKit/Chrome时间戳与普通Unix时间戳互转 - 带Python/PHP实现
- Mongodb基本操作与Python连接mongodb并进行基础操作的方法
- python多线程多队列(BeautifulSoup网络爬虫)详解编程语言
- Python封装底层实现原理详解(通俗易懂)
- 运维学python之爬虫基础篇(五)正则表达式
- 运维学python之爬虫基础篇(三)urllib模块高级用法
- Python脚本实现Linux系统管理及自动化部署(python写linux)
- 爬虫借助Scrapy的Redis爬虫提速效率(scrapy的redis)
- linux系统使用python监测网络接口获取网络的输入输出
- 零基础写python爬虫之使用Scrapy框架编写爬虫
- kNN算法python实现和简单数字识别的方法