我正在运行Scrapy 0.24.4,并且遇到了很多网站,非常快速地关闭了抓取,通常是在5个请求中。每个请求都会返回403或503,而Scrapy放弃了。我正在通过一个包含100个代理的池,并启用RotateUserAgentMiddleware
。
是否有人知道网站如何快速识别Scrapy,即使代理和用户代理更改? Scrapy不会向请求标头添加任何内容,是吗?
答案 0 :(得分:1)
某些网站包含需要运行的JavaScript代码。 Scrapy没有执行javascript代码,因此Web应用程序很快就知道它是一个机器人。
http://scraping.pro/javascript-protected-content-scrape/
尝试对返回403的网站使用selenium。如果使用selenium进行爬网,则可以假设问题出在javascript中。 我认为crunchbase.com使用这种防止抓取的保护。
答案 1 :(得分:1)
似乎主要问题是没有启用Cookie。启用cookie后,我现在取得了更大的成功。感谢。
答案 2 :(得分:0)
对我来说,cookie已启用。 解决该问题的方法是使用另一个常见的用户代理。
在项目USER_AGENT
的settings.py文件中替换为:
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'