【问题标题】:Crawlera, cookies, sessions, rate limiting爬虫、cookies、会话、速率限制
【发布时间】:2019-09-09 12:47:34
【问题描述】:

我正在尝试使用 scrapinghub 抓取一个严重限制请求率的网站。

如果我按原样运行蜘蛛,我很快就会得到 429。

如果我按照standard instructions 启用 crawlera,蜘蛛将不再工作。

如果我设置 headers = {"X-Crawlera-Cookies": "disable"} 蜘蛛再次工作,但我得到 429 - 所以我假设限制器(也)在 cookie 上工作。

那么这里有什么方法呢?

【问题讨论】:

  • 提高速率的策略有很多。您可以增加参数CONCURRENT_REQUESTS,但不要增加太多,因为网站会通过响应 500 降低您的速度。您可以复制您的蜘蛛并拆分您想要抓取的一组网址,以便将每个切片专用于每个重复项。这是一个很大的话题。此外,如果没有 cookie,它的效果会非常好,而且效果更好,那就简单地做吧。
  • @AvyWam 不,没有 cookie 它不起作用:它们需要由 scrapy 处理,以便在请求之间维护它们。这就是我的观点:如果需要保留它们,Crawlera 中间件对我来说似乎没用,除非它也暴露了会话 - 但是it doesn't

标签: scrapy scrapinghub crawlera


【解决方案1】:

你可以试试RandomUserAgent,如果你不想自己写实现,可以试试这个:

https://github.com/cnu/scrapy-random-useragent

【讨论】:

  • 我不知道,谢谢。但是,如果限制是基于 cookie 完成的,为什么会有帮助呢?
  • UserAgent 是 cookie 的一部分,但我认为您是对的,您需要更多,也许更改会话 ID? en.wikipedia.org/wiki/Session_ID
猜你喜欢
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-07
  • 2020-10-22
  • 2011-01-11
相关资源
最近更新 更多