用403/503阻止Scrapy爬行

时间:2015-04-20 21:15:36

标签: python web-scraping scrapy

我正在运行Scrapy 0.24.4,并且遇到了很多网站,非常快速地关闭了抓取,通常是在5个请求中。每个请求都会返回403或503,而Scrapy放弃了。我正在通过一个包含100个代理的池,并启用RotateUserAgentMiddleware

是否有人知道网站如何快速识别Scrapy,即使代理和用户代理更改? Scrapy不会向请求标头添加任何内容,是吗?

3 个答案:

答案 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'