Files

77 lines
3.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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` 接管模式下脚本只断开连接,不会关闭你的主浏览器。