免责声明
本文所有内容,包括文字、图片、音频、视频、软件以及程序等,仅用于个人学习、研究或欣赏。本人不保证内容的正确性。通过参考本文内容随之而来的风险与本人无关。读者可将本文提供的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本人及相关权利人的合法权利。
本文撰写目的是个人学习、研究或欣赏,部分内容来源于互联网,如无意侵犯他人或网站合法权利,请联系本人,予以删除。
#前言
在前几天的爬虫实践中,由于防封措施做得不好,被豆 * 封了,必须登录才能打开豆 * 的网站,但是我又不想登录,所以今天做了一些防封的配置供大家参考。

#一、防封策略
根据scrapy官方文档里面的描述,要防止scrapy被ban,主要有以下几个策略。
- 设置延迟下载
- 禁用cookies
- 动态设置user agent
- 使用Google cache
- 使用IP地址池(Tor project、VPN和代理IP)
- 使用Crawlera
由于Google cache受国内网络的影响,使用不便,而Crawlera我会专门放到下一篇专题去讲,所以在本文暂时主要从设置延迟下载、禁用cookies、动态随机设置user agent和使用代理IP这几种策略出发,防止爬虫程序被封禁。
#二、防封配置
###2-1、设置延迟下载
在项目的settings.py文件中添加如下配置:
# 设置并发数量
CONCURRENT_REQUESTS = 1
# 设置延迟下载间隔,单位:秒
DOWNLOAD_DELAY = 5
两个属性的含义:
CONCURRENT_REQUESTS
默认: 16
Scrapy下载程序执行的并发(即同时)请求的


1327

被折叠的 条评论
为什么被折叠?



