2025 年如何绕过 Amazon CAPTCHA
亚马逊的 CAPTCHA 系统是一项至关重要的安全机制,旨在区分人类用户和自动机器人。如果您从事网页抓取或自动化工作,遇到 CAPTCHA 可能会中断您的工作流程。本指南探讨了几种有效绕过 Amazon CAPTCHA 的高级策略,同时确保抓取过程的可靠性。
Amazon CAPTCHA 通常是一种基于文本的验证,用户必须输入显示的字符。该系统会检测并响应非人类行为,从而阻止自动访问 Amazon 数据。此安全措施主要应用于涉及重复或脚本化操作的场景,例如:
-
频繁访问产品页面或直接通过脚本访问。
-
进行自动搜索查询。
-
登录或创建多个账户。
由于亚马逊没有明确规定触发验证码的条件,其行为仍然难以预测。即使是基本的 Selenium 脚本,也可能前一刻运行顺利,下一刻就遇到验证码,这使得构建稳定的抓取工具变得复杂。
人类用户很少遇到验证码,因为亚马逊的安全系统主要针对自动化脚本。修改浏览器自动化程序以模拟真实用户行为,可以显著减少验证码的遭遇次数。这可以通过使用专门的工具来修改浏览器指纹和行为来实现。
推荐工具
-
SeleniumBase – 增强 Selenium 的隐形功能。
-
Playwright Stealth – 修改浏览器特性以避免被检测到。
-
Puppeteer Stealth – 使 Puppeteer 脚本看起来更像人类。
-
undetected-chromedriver – 一个修补过的 WebDriver,可以绕过检测机制。
示例:使用 SeleniumBase 实现隐身方法
1from seleniumbase import Driver
2
3# 以隐身模式启动 SeleniumBase 驱动程序
4driver = Driver(uc=True)
5driver.get("https://www.amazon.com/Amazon-Kindle/dp/B0CNV9F72P")
6driver.save_screenshot("product-page.png")
7driver.quit()
8
9
此方法大大减少了 CAPTCHA 提示的频率,确保更顺畅的自动化。
与现代先进的 CAPTCHA 系统相比,Amazon CAPTCHA 相对简单,这使得 AI 能够高效地解决这些问题。该过程包括:
-
截取 CAPTCHA 挑战的屏幕截图。
-
将图像发送到基于 AI 的 OCR 模型进行文本提取。
-
使用提取的文本自动完成验证码字段。
示例:使用 OpenAI 的 GPT 模型进行 CAPTCHA 验证
1导入 os、time、base64
2从 openai 导入 OpenAI
3从 selenium 导入 webdriver
4从 selenium.webdriver.common.by 导入 By
5从 selenium.webdriver.common.keys 导入 Keys
6
7def encode_image(image_path):
8with open(image_path, "rb") as image_file:
9return base64.b64encode(image_file.read()).decode("utf-8")
10
11def resolve_amazon_captcha(driver):
12client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
13captcha_elements = driver.find_elements(By.CSS_SELECTOR, ".a-span12")
14
15if captcha_elements:
16driver.save_screenshot("captcha.png")
17base64_image = encode_image("captcha.png")
18response = client.chat.completions.create(
19model="gpt-4o-mini",
20messages=[ {"role": "user", "content": [ {"type": "text", "text": "从此验证码中提取文本。"},{"type": "image_url", "image_url": {"url": f"data:image/png;base64,{base64_image}"}}]}
21],
22)
23captcha_text = response.choices[0].message.content.strip()
24captcha_elements[0].send_keys(captcha_text, Keys.ENTER)
25time.sleep(5)
26
27
这种人工智能驱动的方法可以自动化验证码的解析,在保持效率的同时减少人工干预。
为了获得更可靠、更可扩展的方法,集成第三方验证码 (CAPTCHA) 解决服务是最佳解决方案。这些服务使用自动求解器或人工工作者实时处理验证码挑战。
热门验证码 (CAPTCHA) 解决服务:
-
2Captcha – 提供人工辅助验证码 (CAPTCHA) 解决服务。
-
Anti-Captcha – 使用人工智能 (AI) 和人工求解器快速解决问题。
-
CapMonster – 全自动验证码 (CAPTCHA) 解决服务。
将这些服务与隐形浏览器结合使用,可在效率和准确性之间实现最佳平衡。
保持会话持久性可以使请求看起来更像回访用户,从而降低遇到验证码的几率。
如何实现
-
使用 Python 中的 request.Session() 管理 Cookie 和标头。
-
使用 Playwright 的 storageState 持久化身份验证数据。
示例
1from request import Session
2
3session = Session()
4session.get("https://www.amazon.com") # 存储 Cookie
5response = session.get("https://www.amazon.com/gp/bestsellers")
6print(response.text) # 预期更少的验证码提示
7
8
规避验证码不仅仅需要隐身技术;还需要强大的代理解决方案。 MoMoProxy 是一款高效的代理服务器,通过以下方式提升网页抓取成功率:
-
80 亿个全球住宅 IP – 模拟真实用户行为,规避检测。
-
轮换代理 – 自动切换 IP 以分配请求。
-
高速连接 – 确保无缝自动化,无延迟。
-
支持多种设备 – 适用于 Windows、iOS、Android 和 Linux。
-
99.64% 的请求成功率 – 降低拦截风险。
-
支持所有用例 – 可与反检测浏览器、抓取工具和自动化工具配合使用。
示例:将 MoMoProxy 与 Requests 集成
1proxies = {
2"http": "http://username:[email protected]:port",
3"https": "https://username:[email protected]:port"
4}
5response = session.get("https://www.amazon.com", proxies=proxies)
6print(response.text)
7
8
通过将 MoMoProxy 与上述 CAPTCHA 绕过策略集成,您可以显著提高抓取操作的效率和成功率。
绕过 Amazon CAPTCHA 需要将隐身浏览、AI 驱动的识别、会话持久性、类人交互以及第三方 CAPTCHA 解析服务进行战略性组合。将这些技术与 MoMoProxy 的高级代理解决方案结合使用,可确保数据提取顺畅无阻。采用这些最佳实践将提高您的抓取效率,同时最大限度地减少与 CAPTCHA 相关的中断。