如何在抓取亚马逊时防止被列入黑名单[关闭]

Posted

技术标签:

【中文标题】如何在抓取亚马逊时防止被列入黑名单[关闭]【英文标题】: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。必须重新打开此答案。 【参考方案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

以上是关于如何在抓取亚马逊时防止被列入黑名单[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

可以将 ip 列入白名单以与 aws 负载均衡器后面的 ec2 实例进行入站通信吗?

BeautifulSoup - 亚马逊和谷歌将我识别为机器人;我该如何解决?

@font-face 列入黑名单的字体 [关闭]

如何防止亚马逊账户关联

根据位置抓取亚马逊价格时,cookie 随机无法保留位置信息?

如何在网站页面完全加载时抓取它(js,css all loaded)