阻止使用Scrapy抓取网站?

我仍在尝试从这种URL中刮取搜索结果,http://so.news.cn/getNews?keyword=%E7%BE%8E%E5%9B%BD&curPage=55&sortField=0&searchFields=0&lang=cn是中文在线报纸的搜索结果。 Scrapy适用于一些请求,然后得到以下终端输出。

  

2019-12-19 11:56:19 [scrapy.spidermiddlewares.httperror]信息:忽略响应dark theme is available in Android 10>:未处理或不允许HTTP状态代码

如果我添加一个延迟,它似乎可以更好地工作,但是那太慢了。这是因为我被该网站阻止了吗,对此我能做些什么?我目前在settings.py中没有定义任何特殊的User-Agent。我尝试使用 scrapy-UserAgent 旋转User-Agent,但是它似乎没有用。 VPN有帮助吗?

谢谢

tanglc321 回答:阻止使用Scrapy抓取网站?

要测试的不同解决方案:

  • 每个请求之间的随机暂停
  • 充分利用会话:

    1)保持同一会话的请求量(30到60)

    2)在30到60次请求后清除您的cookie并更改用户代理。   使用以下简单的python框架:https://pypi.org/project/shadow-useragent/

    3)如果仍然不起作用:借助于代理提供程序,可以随着时间的推移轮换IP(例如,每30至60个请求),轮换用户代理,同时清除cookie。

对于大多数网站,您现在应该看起来随机。如果您看到了更多的机器人缓解(验证码)或专门的反抓取服务,则可能会变得更加棘手。

本文链接:https://www.f2er.com/2892564.html

大家都在问