xhs_crawler/playwright.md

78 lines
1.8 KiB
Markdown
Raw Permalink Normal View History

2024-12-17 08:14:10 +00:00
# Playwright 爬虫技术分析
## Playwright 简介
Playwright 是一个由微软开发的自动化浏览器测试工具,它可以:
1. 自动控制 Chromium、Firefox 和 WebKit 浏览器
2. 模拟真实用户操作
3. 执行 JavaScript 代码
4. 获取浏览器上下文和 Cookie
## 使用 Playwright 爬取小红书的步骤
根据代码分析,主要步骤如下:
1. **初始化浏览器环境**
```python
async with async_playwright() as playwright:
browser_context = await self.launch_browser(
playwright.chromium,
proxy=None,
headless=config.HEADLESS
)
```
2. **登录获取 Cookie**
```python
# 扫码登录
login_obj = XiaoHongShuLogin(
login_type=config.LOGIN_TYPE,
browser_context=self.browser_context,
context_page=self.context_page
)
await login_obj.begin()
```
3. **获取加密参数**
- 通过执行 JS 获取 X-s 等签名参数
- 保留登录成功后的上下文环境
- 避免了复杂的 JS 逆向过程
4. **发送请求获取数据**
```python
# 搜索笔记
await self.xhs_client.search_notes(
keyword=keyword,
page=page,
sort=SearchSortType.GENERAL
)
# 获取笔记详情
await self.xhs_client.get_note_by_id(note_id)
```
5. **数据存储**
- 支持存储到 MySQL
- 支持导出为 CSV
- 支持导出为 JSON
## 核心优势
1. 降低逆向难度
- 不需要复现复杂的加密算法
- 直接获取浏览器中的参数
2. 更真实的请求环境
- 完整的浏览器环境
- 真实的 Cookie 和请求头
3. 更稳定的爬取
- 自动处理反爬验证
- 支持 IP 代理池
- 支持登录态缓存
这种方式通过 Playwright 模拟真实浏览器环境,大大降低了爬虫开发难度,是一种非常实用的爬虫技术方案。
需要注意的是,使用时要遵守平台规则,合理控制爬取频率,仅用于学习研究用途。