网络爬虫 · 1 分钟阅读

抓取亚马逊:代理、头部和速率限制

亚马逊是网络上被抓取最多的网站之一,也是防御性最强的网站之一。大规模收集价格、评论或目录数据意味着分发请求、发送真实的头信息,以及处理亚马逊返回的 CAPTCHA 和机器人页面。这里是一个实用、诚实的操作指南。

亚马逊如何对抗抓取者

亚马逊通过分层检测来保护其目录:每个IP的速率限制,"机器人检查" / "输入您看到的字符" CAPTCHA页面,狗错误页面,TLS和头部指纹识别,以及行为检查。从一个地址频繁访问产品页面,您将很快看到CAPTCHA,然后是限速或封锁。该网站还根据地区变化页面并进行A/B测试布局,因此您的解析器必须能够容忍变化。

在您开始之前有两个诚实的警告。亚马逊的条款禁止抓取,亚马逊提供官方途径——产品广告API和销售合作伙伴API——以获得批准的数据访问;首先权衡这些。而且没有任何设置可以让亚马逊永远可靠地抓取;目标是可持续的收集速率,而不是隐形。对于常见的电子商务用例——价格监控,竞争研究——请参见我们的价格监控和亚马逊代理页面。

可持续的爬虫设置

获胜的方法模仿许多普通购物者:

  • 轮换代理池,以便没有单个IP超过亚马逊的容忍度。这是防止每个IP限流的主要防御措施。
  • 发送完整、真实的头信息 — 用户代理、接受、接受语言,并保持内部一致性。一个简单的请求默认头信息是一个明显的标志。
  • 带有抖动的节奏 — 随机延迟胜过固定间隔。更倾向于稳定的涓涓细流而不是突发。
  • 固定一个区域 — 使用一个出口国家和匹配的接受语言及邮政编码,以便价格和可用性保持一致;在运行中切换区域会混淆你的数据。
  • 检测机器人页面 — 检查CAPTCHA / 机器人检查标记,并对该IP进行回退,而不是解析垃圾数据。
  • 仅在需要时使用无头浏览器 — 产品页面的大部分内容在初始HTML中;将更重的工具保留给JS渲染的部分。

亚马逊对数据中心IP进行评分,因此激进的抓取是住宅代理通常存活更长时间的情况。s4m出售数据中心代理;一个专用IP为你提供一个稳定的区域,以便在适度的数量下进行价格一致的收集,但在高容量下要对数据中心检测保持现实。

通过代理获取产品页面

通过 s4m 代理路由,设置完整的头部,并检测亚马逊的机器人页面,以便您可以轮换而不是解析错误。

python
import requests

proxies = {
    "http":  "http://USER:PASS@proxy.s4m.online:3128",
    "https": "http://USER:PASS@proxy.s4m.online:3128",
}
headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) "
                  "Chrome/122.0 Safari/537.36",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language": "en-US,en;q=0.9",
}

r = requests.get("https://www.amazon.com/dp/B0EXAMPLE",
                 headers=headers, proxies=proxies, timeout=20)

if "api-services-support@amazon.com" in r.text or "Robot Check" in r.text:
    raise RuntimeError("Hit Amazon bot page - rotate IP and back off")

parse_product(r.text)   # your parser
Share this page
FAQ

问题,已解答

抓取亚马逊是允许的吗?

亚马逊的使用条款禁止抓取,具体法律风险取决于管辖权和数据。亚马逊提供官方API(产品广告API,销售合作伙伴API)以获得批准的访问权限。首先考虑这些,并为任何大规模操作获取法律建议。

为什么我的亚马逊价格在请求之间不断变化?

亚马逊根据地区本地化价格和可用性,并进行A/B测试。如果您的代理池来自不同国家,您将收集到不一致的数据。固定一个出口区域和匹配的Accept-Language及邮政编码,专用IP有助于保持稳定。

数据中心代理适用于亚马逊吗?

对于适度、节奏良好的收集,通常是的。亚马逊会评分数据中心范围,因此在高流量下,您会看到比住宅IP更多的CAPTCHA。s4m出售数据中心代理;轮换、节奏和现实的头部与IP类型一样重要,但没有设置是防封的。

干净地抓取电子商务数据

通过经过身份验证的 s4m 数据中心代理进行产品和价格抓取,使用专用 IP 固定区域,并合理安排您的工作。按需计费,匿名账户,接受加密货币。

人们通过搜索找到此页面

此页面回答的真实搜索短语 — 链接的短语打开详细覆盖它们的页面。