77 lines
3.5 KiB
Markdown
77 lines
3.5 KiB
Markdown
# Pinterest 关键词图片爬取工具
|
||
|
||
用 Playwright 启动本机 **Google Chrome** 搜索 Pinterest,并下载最高分辨率的图片。登录态通过**项目内持久化缓存目录**自动保存,首次登录后无需重复操作。
|
||
|
||
## 前置条件
|
||
|
||
1. 安装 Python 依赖:`uv sync`
|
||
2. 本机已安装 **Google Chrome**(脚本直接复用它,不下载任何浏览器内核)
|
||
|
||
## 运行方式
|
||
|
||
### 最简用法(默认,会自动缓存登录态)
|
||
|
||
```bash
|
||
uv run pinterest_image_capture.py "风景壁纸" -n 50
|
||
```
|
||
|
||
脚本会用项目内的 `.chrome_session/User Data` 作为 Chrome 用户数据目录启动一个**可见的本地 Chrome 窗口**:
|
||
|
||
- **首次运行**:请在弹出的窗口里登录 Pinterest(只需这一次)。登录态会缓存在 `.chrome_session` 目录中。
|
||
- **后续运行**:直接复用缓存的登录态,自动登录,不再需要手动登录。
|
||
- 你能实时看到滚动与采集过程,脚本结束自动关窗。
|
||
- `.chrome_session` 已加入 `.gitignore`,不会误提交。
|
||
|
||
### 模式 B:接管你已开好的调试版主浏览器(可选)
|
||
|
||
如果你平时就用 `open_chrome_debug.bat`(或桌面快捷方式)开着调试版主浏览器,可加 `--cdp` 直接接管,跳过自动启动:
|
||
|
||
```bash
|
||
uv run pinterest_image_capture.py "风景壁纸" -n 50 --cdp http://127.0.0.1:9222
|
||
```
|
||
|
||
## 代理
|
||
|
||
代理按以下顺序解析,无需手动填:命令行 `--proxy` > 环境变量 > 本地常见端口探测 > **系统代理**(兜底)。你机器的系统代理会被自动读取并同时用于浏览器与图片下载。传 `--proxy ""` 可禁用。
|
||
|
||
### 参数
|
||
|
||
| 参数 | 说明 | 默认值 |
|
||
|------|------|--------|
|
||
| `keyword` | 搜索关键词(必填,位置参数) | - |
|
||
| `-n, --count` | 爬取图片数量 | 40 |
|
||
| `--proxy` | 代理地址(默认自动解析:本地探测/系统代理;传空字符串禁用) | 自动 |
|
||
| `--cdp` | 可选:指定 CDP 地址以接管已开的调试版 Chrome(见模式 B) | 不填(默认用持久化缓存目录启动本地 Chrome) |
|
||
| `--headless` | 自动启动 Chrome 时采用无头模式 | 关闭 |
|
||
| `-o, --output` | 保存目录 | `output/img/<关键词>` |
|
||
|
||
### 示例
|
||
|
||
```bash
|
||
# 最简用法:只填关键词和数量,代理自动探测
|
||
uv run pinterest_image_capture.py "风景壁纸" -n 50
|
||
|
||
# 无头模式运行(不弹窗)
|
||
uv run pinterest_image_capture.py 猫 -n 10 --headless
|
||
|
||
# 手动指定代理 / 禁用代理
|
||
uv run pinterest_image_capture.py 猫 -n 10 --proxy "http://127.0.0.1:7890"
|
||
uv run pinterest_image_capture.py 猫 -n 10 --proxy ""
|
||
```
|
||
|
||
## 代理自动探测
|
||
|
||
脚本会按以下顺序自动确定代理,无需手动填写:
|
||
|
||
1. 读取系统/用户环境变量 `HTTPS_PROXY` / `HTTP_PROXY`(含小写)。
|
||
2. 实测本地常见代理端口:Clash(`7890~7893`)、v2rayN(`10808`/`10809`)、Shadowsocks(`1080`/`1087`)、Fiddler(`8888`)等。
|
||
|
||
浏览器和下载阶段都会走同一个代理。若都没探测到,脚本会直连运行并在控制台提示(此时若无法访问 Pinterest 需手动用 `--proxy` 指定)。
|
||
|
||
## 说明
|
||
|
||
- 连续 10 轮滚动无新图片时自动停止(搜索结果不足目标数量时不会死循环)。
|
||
- 下载阶段并发数为 10,浏览器与下载都走自动探测到的代理。
|
||
- 默认模式下脚本启动的 Chrome 用 `.chrome_session` 用户目录,登录态持久化保存;脚本结束自动关窗。如需清空登录态,删除 `.chrome_session` 目录即可重新登录。
|
||
- `--cdp` 接管模式下脚本只断开连接,不会关闭你的主浏览器。
|