scrapy 用403/503阻止刮擦爬网

whitzsjs  于 2022-11-09  发布在  其他
关注(0)|答案(4)|浏览(179)

我运行的是Scrapy 0.24.4,我遇到过很多网站,它们很快就关闭了抓取,通常在5个请求之内。这些网站对每个请求都返回403或503,Scrapy放弃了。我正在运行一个100个代理的池,启用了RotateUserAgentMiddleware
有谁知道一个站点是如何快速识别Scrapy的,即使代理和用户代理发生了变化?Scrapy不会在请求头中添加任何泄露信息的内容,对吗?

k4ymrczo

k4ymrczo1#

有些网站包含了需要运行的javascript代码,而Scrapy并不执行javascript代码,所以网络应用程序很快就知道它是一个机器人。
http://scraping.pro/javascript-protected-content-scrape/
尝试对返回403的站点使用selenium。如果使用selenium爬行工作正常,您可以假设问题出在javascript中。我认为crunchbase.com使用了这种防止刮擦的保护。

jtw3ybtb

jtw3ybtb2#

看来主要的问题是没有启用cookie。启用cookie后,我现在有更多的成功。谢谢。

68bkxrlz

68bkxrlz3#

对我来说,cookie已经启用了。修复它的是使用另一个用户代理,一个常见的。
将settings.py项目USER_AGENT的www.example.com文件中的替换为:

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36'
uurity8g

uurity8g4#

我只需要将AutoThrottle_ENABLED设置为True,脚本就可以运行了。

相关问题