xhs_crawler/playwright.md
phezzan f74ad7926e
Some checks failed
Deploy VitePress site to Pages / build (push) Has been cancelled
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
first commit
2024-12-17 16:14:10 +08:00

1.8 KiB

Playwright 爬虫技术分析

Playwright 简介

Playwright 是一个由微软开发的自动化浏览器测试工具,它可以:

  1. 自动控制 Chromium、Firefox 和 WebKit 浏览器
  2. 模拟真实用户操作
  3. 执行 JavaScript 代码
  4. 获取浏览器上下文和 Cookie

使用 Playwright 爬取小红书的步骤

根据代码分析,主要步骤如下:

  1. 初始化浏览器环境
async with async_playwright() as playwright:
    browser_context = await self.launch_browser(
        playwright.chromium,
        proxy=None,
        headless=config.HEADLESS
    )
  1. 登录获取 Cookie
# 扫码登录
login_obj = XiaoHongShuLogin(
    login_type=config.LOGIN_TYPE,
    browser_context=self.browser_context,
    context_page=self.context_page
)
await login_obj.begin()
  1. 获取加密参数
  • 通过执行 JS 获取 X-s 等签名参数
  • 保留登录成功后的上下文环境
  • 避免了复杂的 JS 逆向过程
  1. 发送请求获取数据
# 搜索笔记
await self.xhs_client.search_notes(
    keyword=keyword,
    page=page,
    sort=SearchSortType.GENERAL
)

# 获取笔记详情
await self.xhs_client.get_note_by_id(note_id)
  1. 数据存储
  • 支持存储到 MySQL
  • 支持导出为 CSV
  • 支持导出为 JSON

核心优势

  1. 降低逆向难度
  • 不需要复现复杂的加密算法
  • 直接获取浏览器中的参数
  1. 更真实的请求环境
  • 完整的浏览器环境
  • 真实的 Cookie 和请求头
  1. 更稳定的爬取
  • 自动处理反爬验证
  • 支持 IP 代理池
  • 支持登录态缓存

这种方式通过 Playwright 模拟真实浏览器环境,大大降低了爬虫开发难度,是一种非常实用的爬虫技术方案。

需要注意的是,使用时要遵守平台规则,合理控制爬取频率,仅用于学习研究用途。