78 lines
1.8 KiB
Markdown
78 lines
1.8 KiB
Markdown
# 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 模拟真实浏览器环境,大大降低了爬虫开发难度,是一种非常实用的爬虫技术方案。
|
|
|
|
需要注意的是,使用时要遵守平台规则,合理控制爬取频率,仅用于学习研究用途。
|