Python爬虫-scrapy反爬策略
UA伪装和Cookie设置
- 在
DownloaderMiddleware
的process_request
中设置request.headers['User-Agent']
和request.cookies
- 在
setting.py
中设置
代理IP设置
- 在
DownloaderMiddleware
的process_request
和process_exception
中设置request.meta['proxy']
。 - 在
setting.py
中设置
Download时延
对目标网站的爬取速度不应太快,否则很容易被封IP。所以要设置时延。
settings.py
中设置DOWNLOAD_DELAY
(运行时默认使用0.5DOWNLOAD_DELAY到1.5DOWNLOAD_DELAY之间的值)。并开启AUTOTHROTTLE_ENABLED
根据网站负载动态调整下载速度。
AutoThrottle extension Design goals:
- be nicer to sites instead of using default download delay of zero
- automatically adjust Scrapy to the optimum crawling speed, so the user doesn’t have to tune the download delays to find the optimum one. The user only needs to specify the maximum concurrent requests it allows, and the extension does the rest.
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Silent Wittgenstein!