使用 Playwright 绕过验证码

Expert in Web Scraping Technologies
网站安全现在严重依赖于 CAPTCHA,即完全自动化的公共图灵测试,用于区分计算机和人类。当网站的安全系统检测到异常活动(例如与典型人类行为偏差的访问模式)时,它会加载 CAPTCHA(例如 reCAPTCHA、声音或图片谜题)以阻止机器人访问网站。
一旦 CAPTCHA 挑战加载,就很难通过。然而,您的脚本可以通过几种方式以更像人类的方式与 Web 防火墙通信。因此,您可以完全阻止 CAPTCHA 加载。这被称为逃避或绕过 CAPTCHA。
本综合指南向您展示如何使用 Playwright 利用 Python 来解决 CAPTCHA 问题。本课程还将介绍使用 Scrapeless 的 Captcha 解决方案而不是 playwright-stealth 库的优势。
注意:出于恶意或非法目的绕过 CAPTCHA 是违法的,也是不道德的。本课程主要用于教育目的。为了避免法律纠纷,我们强烈建议用户完整阅读目标网站的服务条款。
使用 Playwright 绕过 CAPTCHA
Playwright 提供了一个功能强大且直观的 API,用于与网页进行交互,使开发人员能够执行诸如点击组件、填写表格以及从动态网站获取数据等操作。它支持多种浏览器,包括 Chromium、Firefox 和 WebKit,从而确保了跨浏览器兼容性。此外,Playwright 由于其无头模式功能,非常适合网页抓取活动,该功能允许隐蔽的浏览器交互。
仅仅依靠 Playwright CAPTCHA 跳过方法可能很困难,因为网站可以识别来自无头和自动化程序的流量。值得庆幸的是,`playwright-stealth} 包可提供帮助。
Playwright 和 stealth 包的结合为绕过 CAPTCHA 提供了一种强大的组合。由于 stealth 包,Playwright 的无头浏览器实例对网站看起来更像人类。因此,它降低了被网站发现的可能性。
让我们创建一个 Python 脚本,它以无头模式打开一个 Web 连接,以展示如何在 Playwright 中处理 CAPTCHA。之后,它会拍摄目标链接的快照并将其存储在本地。如果快照显示网站的真实内容而不是 CAPTCHA 或 reCAPTCHA 框,则脚本已成功。
让我们看看开发任何此类脚本的逐步过程,以及使用 Playwright 在 Python 中设置 stealth 的方法。
1. 设置必要的依赖项
安装 stealth 包和 Playwright 库。
language
pip install playwright playwright-stealth
2. 要导入的模块
对于简单且线性的程序流程,请使用 Playwright 库的同步版本。
language
from playwright.sync_api import sync_playwright
from playwright_stealth import stealth_sync
3. 启动无头浏览器实例。
定义 capture_screenshot() 方法,其中包含启动无头浏览器实例、导航到 URL 并截取屏幕截图的整个代码。在此方法中创建一个新的 sync_playwright 实例,并使用它以无头模式启动 Chromium 浏览器。
language
# 定义用于截取屏幕截图的函数
def capture_screenshot():
# 创建一个 playwright 实例
with sync_playwright() as play_wright:
browser = play_wright.chromium.launch(headless=True)
# 创建一个新的上下文和页面
context = browser.new_context()
page = context.new_page()
4. 利用 stealth 配置。
在生成浏览器上下文之后,使用 playwright-stealth 包将 stealth 设置应用于页面并启用 Playwright CAPTCHA 绕过。通过隐藏浏览器的自动行为,stealth 设置有助于降低被检测到自动化访问的可能性。
language
# 应用 stealth 设置
stealth_sync(page)
5. 打开页面。
下一步是使用 goto() 页面函数通过提供相应的 URL 来导航到目标 URL。
language
# 导航到网站
url = "https://www.scrapeless.com/"
page.goto(url)
6. 抓取屏幕截图
网站完全加载后,截取屏幕截图,然后退出浏览器。
language
# 等待网页完全加载
page.wait_for_load_state("load")
# 截取屏幕截图
screenshot_filename = "scrapeless_screenshot.png"
page.screenshot(path=screenshot_filename)
# 关闭浏览器
browser.close()
print("完成!您可以查看屏幕截图...")
capture_screenshot()
厌倦了不断被CAPTCHA阻碍你的网页抓取工作?
向您强烈推荐 Scrapeless - 性能强大的一体化网页抓取解决方案。
Scrapeless:目前最好的一体化在线抓取解决方案!
借助我们强大的工具套件,可以轻松发挥数据抓取的全部潜力:
最佳 CAPTCHA 解码器
自动解决复杂的 CAPTCHA 问题,确保持续而丝滑地抓取网页数据。
免费试用开启中!
总结
Playwright 可以与 playwright-stealth
包结合使用,从使用标准验证码保护的网站抓取内容。请参阅我们的博客文章,获取有关使用代理配置 Playwright、使用 Playwright 进行网站抓取以及将 Playwright 与 Scrapy 结合使用的更多信息。如果您仍不确定,请免费试用我们的高级代理,以帮助您决定哪种代理最适合您的需求。
但是,要绕过使用复杂的反机器人软件的网站的 CAPTCHA(例如 reCAPTCHA),需要更复杂、更智能的绕过解决方案。为了克服复杂的验证码,Scrapeless 的验证码求解器自动将最新的 AI 方法与绕过策略(例如代理和 IP 轮换、建立真实的指纹以及 JS 渲染)相结合。
在Scrapeless,我们仅访问公开数据,同时严格遵守适用的法律、法规和网站隐私政策。 本博客内容仅用于演示目的,不涉及任何非法或侵权行为。 对于使用本博客或第三方链接的信息,我们不做任何保证,也不承担任何责任。 在参与任何抓取活动之前,请咨询您的法律顾问并查看目标网站的服务条款或获取必要的权限。