【问题标题】:How to prevent getting blacklisted while scraping Amazon [closed]如何在抓取亚马逊时防止被列入黑名单[关闭]
【发布时间】:2016-09-01 19:53:22
【问题描述】:

我尝试通过 Scrapy 抓取亚马逊。 但我有这个错误

DEBUG: Retrying <GET http://www.amazon.fr/Amuses-bouche-Peuvent-b%C3%A9n%C3%A9ficier-dAmazon-Premium-Epicerie/s?ie=UTF8&page=1&rh=n%3A6356734031%2Cp_76%3A437878031> 
(failed 1 times): 503 Service Unavailable

我认为这是因为 = 亚马逊非常擅长检测机器人。 我怎样才能防止这种情况?

我在每次请求之前都使用了time.sleep(6)

我不想使用他们的 API。

我尝试使用 tor 和 polipo

【问题讨论】:

  • tor + polipo 怎么样?有效吗?
  • @ji-ruh for amazon non
  • 我投票决定将此问题作为题外话结束,因为它寻求的是政策合规性方面的帮助,而不是编程方面的帮助。
  • @TylerH 抓取公共数据并不违法,答案帮助我防止因更改 Scrapy 框架中的设置而被列入黑名单
  • 刮刀绝对没有法律义务遵守网站的限制。抓取是not illegal。必须重新打开此答案。

标签: web-scraping scrapy web-crawler amazon scrapy-spider


【解决方案1】:

您必须非常小心亚马逊,并遵守亚马逊使用条款和与网络抓取相关的政策。

亚马逊非常擅长禁止机器人的 IP。您将不得不调整DOWNLOAD_DELAYCONCURRENT_REQUESTS 以减少访问网站的频率并成为一名优秀的网络抓取公民。而且,您需要轮换 IP 地址(例如,您可以查看crawlera)和user agents

【讨论】:

  • 对 Crawlera 来说是的,我还建议将 scrapyjs/splash 添加到您的堆栈中,因为亚马逊通常具有动态页面元素。
  • 如果我使用Crawlera,是否可以像Crawlera推荐的那样快速抓取? CONCURRENT_REQUESTS = 32 CONCURRENT_REQUESTS_PER_DOMAIN = 32 AUTOTHROTTLE_ENABLED = False DOWNLOAD_TIMEOUT = 300
猜你喜欢
  • 2017-05-12
  • 2012-12-08
  • 2019-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多