如何使用 Playwright Stealth 进行抓取
Expert Network Defense Engineer
基础设施
- 始终与最新的反机器人绕过技术保持同步
- 专注于您的业务逻辑,而不是基础设施
✅ 实时监控和调试
- 实时会话功能,观察您的爬虫执行情况
- 会话回放用于调试失败的请求
- 全面记录和分析
如何使用 Scrapeless 爬虫浏览器与 Playwright
将 Scrapeless 集成到您现有的 Playwright 代码中非常简单。只需几个步骤,您就能绕过任何反机器人措施,访问所需的数据。
第一步:注册并获取 API 密钥
- 访问 Scrapeless Dashboard
- 注册一个免费账户
- 导航到设置选项卡
- 复制您的 API 密钥
第二步:使用 CDP 连接替换浏览器启动
与其启动本地浏览器,不如使用 CDP 协议连接到 Scrapeless 的云浏览器:
之前(标准 Playwright):
python
browser = await p.chromium.launch(headless=True)
之后(Scrapeless 爬虫浏览器):
python
from playwright.async_api import async_playwright
# 您的 Scrapeless API 密钥
API_KEY = "your_api_key_here"
# 构建 Scrapeless 连接 URL
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&session_ttl=180&proxy_country=ANY"
async with async_playwright() as p:
# 连接到 Scrapeless 云浏览器
browser = await p.chromium.connect_over_cdp(connection_url)
page = await browser.newPage()
# 您的爬虫逻辑在这里
第三步:测试受保护的网站
让我们尝试抓取同一个受 Cloudflare 保护的页面,该页面阻止了 Playwright Stealth:
python
from playwright.async_api import async_playwright
import asyncio
async def scraper():
# 您的 Scrapeless API 密钥
API_KEY = "your_api_key_here"
# Scrapeless 连接 URL
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&session_ttl=180&proxy_country=ANY"
async with async_playwright() as p:
# 连接到 Scrapeless 云浏览器
browser = await p.chromium.connect_over_cdp(connection_url)
page = await browser.new_page()
# 访问受 Cloudflare 保护的网站
await page.goto("https://www.scrapingcourse.com/antibot-challenge")
# 提取内容
content = await page.content()
print(content)
# 截图
await page.screenshot(path="success_screenshot.png")
await browser.close()
# 运行爬虫
if __name__ == "__main__":
asyncio.run(scraper())
结果:
html
<html lang="en">
<head>
<title>Antibot Challenge - ScrapingCourse.com</title>
</head>
<body>
<h2>
您已成功绕过反机器人挑战!:D
</h2>
<!-- 内容成功提取 -->
</body>
</html>
恭喜! 🎉 您已成功绕过 Cloudflare 保护,使用 Scrapeless 爬虫浏览器。
高级配置选项
Scrapeless 爬虫浏览器提供广泛的配置选项以支持高级使用案例:
自定义代理设置
python
# 使用特定国家的代理
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&proxy_country=US&session_ttl=300"
# 使用您自己的代理
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&proxy_url=http://your-proxy.com:8080"
会话管理
python
# 创建持久会话
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&session_name=my_session&session_ttl=600"
启用会话录制以便调试
python
# 录制会话以便调试
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&session_recording=true"
自定义指纹
python
# 使用自定义浏览器指纹
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&fingerprint=custom"
有关更多配置选项,请访问 Scrapeless Documentation。
对比:Playwright Stealth vs Scrapeless 爬虫浏览器
| 特性 | Playwright Stealth | Scrapeless 爬虫浏览器 |
|---|---|---|
| 设置复杂性 | 中等(需要配置) | 简单(一行更改) |
| 反机器人绕过 | 基础(在高级系统上失败) | 高级(99.9%成功率) |
| Cloudflare 绕过 | ❌ 失败 | ✅ 成功 |
| 验证码解决 | ❌ 需要手动 | ✅ 自动 |
| 维护 | ❌ 需要不断更新 | ✅ 零维护 |
| IP 轮换 | ❌ 需要自己实现 | ✅ 内置(70M+ IPs) |
| 全球代理 | ❌ 需要外部服务支持 | ✅ 覆盖195个国家 |
| 性能 | 本地(取决于硬件) | ⚡ 10倍更快(基于云) |
| 调试工具 | ❌ 有限 | ✅ 实时会话 + 回放 |
| 可扩展性 | ❌ 受限于本地资源 | ✅ 无限并发会话 |
| 成本 | 免费(但基础设施成本高) | 按需付费(便宜40-80%) |
| 支持 | 仅社区支持 | ✅ 专业支持 |
实际应用场景
Scrapeless Scraping Browser 在 Playwright Stealth 失败的场景中表现卓越:
1. 电子商务价格监控
- 无阻力抓取亚马逊、沃尔玛、eBay
- 实时跟踪竞争对手价格
- 处理动态定价和库存更新
2. 社交媒体数据收集
- 提取 Instagram、LinkedIn、Twitter 数据
- 绕过登录墙和速率限制
- 保持持久会话
3. 旅游和酒店情报
- 监控机票价格、酒店房价
- 访问地理限制内容
- 处理重 JavaScript 的预订网站
4. 市场调研和潜在客户生成
- 抓取 B2B 目录和数据库
- 大规模提取联系信息
- 自动遵守速率限制
5. SEO 和竞争对手分析
- 全球跟踪关键字排名
- 分析竞争对手策略
- 实时监控 SERP 变化
定价与成本优化
Scrapeless Scraping Browser 提供灵活的定价:
- 免费层:非常适合测试和小型项目
- 按需付费:仅为实际使用量付费
- 企业计划:定制解决方案并提供 SLA 保证
成本对比:
- 本地运行 Playwright:$200-500/月(服务器成本 + 维护)
- 使用 Scrapeless:$50-150/月(成本减少 40-80%)
此外,您还消除了:
- ❌ 服务器维护成本
- ❌ 代理管理成本
- ❌ CAPTCHA 解决服务成本
- ❌ 开发人员用于调试的时间
最佳实践
1. 尊重速率限制
即使使用 Scrapeless 的强大功能,也要始终尊重目标网站的速率限制:
python
import asyncio
async def scrape_with_delay(urls):
for url in urls:
await page.goto(url)
# 提取数据
await asyncio.sleep(2) # 请求之间延迟2秒
2. 使用会话持久性
对于需要登录的网站:
python
# 创建持久会话
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&session_name=login_session&session_ttl=3600"
3. 启用会话录制以便调试
在开发时:
python
# 启用录制
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&session_recording=true"
然后在 Scrapeless 控制面板查看回放以调试失败。
4. 优化代理选择
根据您的目标选择代理:
python
# 仅美国内容
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&proxy_country=US"
# 全球抓取
connection_url = f"wss://browser.scrapeless.com/browser?token={API_KEY}&proxy_country=ANY"
结论
虽然 Playwright 是一个流行的无头浏览工具,但其默认属性使其容易被目标网站检测。Playwright Stealth 有助于掩盖一些漏洞,但在面对 Cloudflare、DataDome 和 AWS WAF 等高级反机器人系统时显得力不从心。
为了可靠且大规模地提取数据,我们强烈建议使用像 Scrapeless Scraping Browser 这样的企业解决方案。
为什么选择 Scrapeless?
✅ 零代码变更:在您现有的 Playwright 脚本中只需替换一行
✅ 99.9% 成功率:绕过任何反机器人系统,包括 Cloudflare
✅ 自动 CAPTCHA 解决:无需人工干预
✅ 全球代理网络:在 195 个国家/地区拥有 7000 万+ 住宅 IP
✅ 零维护:专注于业务逻辑,而非基础设施
✅ 具有成本效益:比 DIY 解决方案便宜 40-80%
✅ 专业支持:在您需要时得到帮助
免费试用 Scrapeless Scraping Browser - 无需信用卡!
常见问题
1. 为什么使用 Playwright Stealth?
Playwright Stealth 有助于掩盖 Playwright 的自动化特性,以避免基础的机器人检测。这是处理简单抓取任务的良好起点,但在面对高级反机器人系统时存在局限性。
2. Playwright Stealth 是不可检测的吗?
不。虽然 Playwright Stealth 能够绕过基础的机器人检测,但在面对 Cloudflare、DataDome 和 AWS WAF 等高级反机器人系统时,它会失效。对于生产用例,我们建议使用 Scrapeless Scraping Browser。
3. 在 Playwright 中避免检测的最佳方法是什么?
最可靠的方法是使用像 Scrapeless Scraping Browser 这样专业的云浏览器服务,它提供:
- 企业级反检测技术
- 自动 CAPTCHA 解决
- 内置代理旋转
- 零维护
- 99.9% 的正常运行时间保证
4. 我可以在现有 Playwright 代码中使用 Scrapeless 吗?
可以!Scrapeless 对您现有代码的更改要求极少。只需将浏览器启动替换为与 Scrapeless 云浏览器的 CDP 连接:
python
# 之前
浏览器 = await p.chromium.launch(headless=True)
# 之后
浏览器 = await p.chromium.connect_over_cdp(connection_url)
### 5. Scrapeless 的费用是多少?
Scrapeless 提供灵活的定价,包括一个免费的测试层。按需付费方案每月仅需几美元,比运行自己的基础设施便宜 40-80%。[查看当前定价](https://www.scrapeless.com/pricing)。
### 6. Scrapeless 是否支持除了 Python 以外的其他语言?
是的!Scrapeless 支持任何支持 Puppeteer、Playwright 或 CDP 协议的语言,包括:
- Python
- Node.js
- Java
### 7. Scrapeless 能处理需要登录的网站吗?
绝对可以!Scrapeless 支持持久会话,允许您在多个请求之间维护登录状态。使用 `session_name` 参数创建持久会话。
---
**准备好将您的网络爬虫提升到一个新水平了吗?**
[开始您的免费试用](https://www.scrapeless.com/) | [查看文档](https://docs.scrapeless.com/) | [加入 Discord 社区](https://discord.gg/Np4CAHxB9a)
---
*免责声明:本指南仅用于教育目的。始终尊重网站的服务条款和 robots.txt 文件。网络爬虫应仅在获得适当授权的情况下进行,且仅限于公开可用的数据。*
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



