Files
pod_trend_agent/pinterest_scraper/README.md
T

3.5 KiB
Raw Blame History

Pinterest 关键词图片爬取工具

用 Playwright 启动本机 Google Chrome 搜索 Pinterest,并下载最高分辨率的图片。登录态通过项目内持久化缓存目录自动保存,首次登录后无需重复操作。

前置条件

  1. 安装 Python 依赖:uv sync
  2. 本机已安装 Google Chrome(脚本直接复用它,不下载任何浏览器内核)

运行方式

最简用法(默认,会自动缓存登录态)

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 直接接管,跳过自动启动:

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/<关键词>

示例

# 最简用法:只填关键词和数量,代理自动探测
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. 实测本地常见代理端口:Clash7890~7893)、v2rayN10808/10809)、Shadowsocks1080/1087)、Fiddler8888)等。

浏览器和下载阶段都会走同一个代理。若都没探测到,脚本会直连运行并在控制台提示(此时若无法访问 Pinterest 需手动用 --proxy 指定)。

说明

  • 连续 10 轮滚动无新图片时自动停止(搜索结果不足目标数量时不会死循环)。
  • 下载阶段并发数为 10,浏览器与下载都走自动探测到的代理。
  • 默认模式下脚本启动的 Chrome 用 .chrome_session 用户目录,登录态持久化保存;脚本结束自动关窗。如需清空登录态,删除 .chrome_session 目录即可重新登录。
  • --cdp 接管模式下脚本只断开连接,不会关闭你的主浏览器。