feat: 支持playwright通过cdp协议连接本地chrome浏览器

docs: 增加uv来管理python依赖的文档
This commit is contained in:
程序员阿江(Relakkes)
2025-06-25 23:22:39 +08:00
parent fbc9788d54
commit e83b2422d9
10 changed files with 991 additions and 52 deletions

View File

@@ -21,7 +21,7 @@
目前能抓取小红书、抖音、快手、B站、微博、贴吧、知乎等平台的公开信息。
原理:利用[playwright](https://playwright.dev/)搭桥保留登录成功后的上下文浏览器环境通过执行JS表达式获取一些加密参数
通过使用此方式免去了复现核心加密JS代码逆向难度大大降低
通过使用此方式免去了复现核心加密JS代码逆向难度大大降低
# 功能列表
| 平台 | 关键词搜索 | 指定帖子ID爬取 | 二级评论 | 指定创作者主页 | 登录态缓存 | IP代理池 | 生成评论词云图 |
@@ -52,36 +52,38 @@
# 安装部署方法
> 开源不易希望大家可以Star一下MediaCrawler仓库十分感谢 <br>
## 创建并激活 python 虚拟环境
> 如果是爬取抖音和知乎需要提前安装nodejs环境版本大于等于`16`即可 <br>
> 新增 [uv](https://github.com/astral-sh/uv) 来管理项目依赖使用uv来替代python版本管理、pip进行依赖安装更加方便快捷
```shell
# 进入项目根目录
cd MediaCrawler
# 创建虚拟环境
# 我的python版本是3.9.6requirements.txt中的库是基于这个版本的如果是其他python版本可能requirements.txt中的库不兼容自行解决一下。
python -m venv venv
# macos & linux 激活虚拟环境
source venv/bin/activate
## 前置依赖
# windows 激活虚拟环境
venv\Scripts\activate
### uv 安装
> 在进行下一步操作之前, 请确保电脑上已经安装了uv[uv安装地址](https://docs.astral.sh/uv/getting-started/installation)
>
> uv是否安装成功的验证, 终端输入命令uv --version 如果正常显示版本好,那证明已经安装成功
>
> 强力安利 uv 给大家使用简直是最强的python包管理工具
>
```
### nodejs安装
项目依赖nodejs安装地址https://nodejs.org/en/download/
> 如果要用python的原生venv来管理环境的话可以参考: [原生环境管理文档](docs/原生环境管理文档.md)
## 安装依赖库
### python包安装
```shell
pip install -r requirements.txt
```
```shell
# 进入项目目录
cd MediaCrawler
## 安装 playwright浏览器驱动
# 使用 uv sync 命令来保证python版本和相关依赖包的一致性
uv sync
```
```shell
playwright install
```
### 浏览器驱动安装
```shell
# 安装浏览器驱动
playwright install
```
> MediaCrawler目前已经支持使用playwright连接你本地的Chrome浏览器了一些因为Webdriver导致的问题迎刃而解了。
>
> 目前开放了 xhs 和 dy 这两个使用 cdp 的方式连接本地浏览器如有需要查看config/base_config.py中的配置项。
## 运行爬虫程序
@@ -90,16 +92,16 @@
### 一些其他支持项也可以在config/base_config.py查看功能写的有中文注释
# 从配置文件中读取关键词搜索相关的帖子并爬取帖子信息与评论
python main.py --platform xhs --lt qrcode --type search
uv run main.py --platform xhs --lt qrcode --type search
# 从配置文件中读取指定的帖子ID列表获取指定帖子的信息与评论信息
python main.py --platform xhs --lt qrcode --type detail
uv run main.py --platform xhs --lt qrcode --type detail
# 打开对应APP扫二维码登录
# 其他平台爬虫使用示例,执行下面的命令查看
python main.py --help
```
uv run main.py --help
```
## 数据保存
- 支持关系型数据库Mysql中保存需要提前创建数据库
@@ -107,7 +109,9 @@
- 支持保存到csv中data/目录下)
- 支持保存到json中data/目录下)
# 项目微信交流群
[加入微信交流群](https://nanmicoder.github.io/MediaCrawler/%E5%BE%AE%E4%BF%A1%E4%BA%A4%E6%B5%81%E7%BE%A4.html)
# 其他常见问题可以查看在线文档
>
@@ -120,10 +124,7 @@
[作者的知识付费栏目介绍](https://nanmicoder.github.io/MediaCrawler/%E7%9F%A5%E8%AF%86%E4%BB%98%E8%B4%B9%E4%BB%8B%E7%BB%8D.html)
# 项目微信交流群
[加入微信交流群](https://nanmicoder.github.io/MediaCrawler/%E5%BE%AE%E4%BF%A1%E4%BA%A4%E6%B5%81%E7%BE%A4.html)
# 感谢下列Sponsors对本仓库赞助支持
<a href="https://www.swiftproxy.net/?ref=nanmi">
<img src="docs/static/images/img_5.png">