面向需要 扫码登录/复杂交互 的网站:先用工具稳定拿到会话(cookies/storage_state),再验证选择器,最后用可配置 workflow 执行抓取动作与提取。
python -m venv .venv
.\.venv\Scripts\activate
pip install -r requirements.txt
python -m playwright installpython -m spider login --url "https://目标网站/login" --state sessions/site.json可选:如果你知道“登录成功后一定出现的元素”,用 --wait-selector 自动判断:
python -m spider login --url "..." --state sessions/site.json --wait-selector "css=.avatar"python -m spider selectors --url "https://目标网站/某页" --state sessions/site.json --selector "css=.item"
python -m spider selectors --url "..." --state sessions/site.json --selector "css=a" --attr href --limit 10需要分析“页面真实请求了哪些接口”时,可以顺便导出 HAR:
python -m spider selectors --url "..." --state sessions/site.json --selector "css=body" --har artifacts/network.har进入 Playwright Inspector(更适合“现场试选择器”):
set PWDEBUG=1
python -m spider inspect --url "https://目标网站/某页" --state sessions/site.jsonpython -m spider cookies show --state sessions/site.json
python -m spider cookies export --state sessions/site.json --out cookies.json
python -m spider cookies header --state sessions/site.json --url "https://目标网站/某页"如果你已经在浏览器里复制了 Cookie 请求头(例如开发者工具里看到的 Cookie: a=b; c=d),可以直接生成 storage_state.json:
python -m spider cookies from-header --url "https://目标网站/" --cookie "a=b; c=d" --out sessions/site.json --validate编辑 examples/workflow.example.yaml,然后:
python -m spider run --config examples/workflow.example.yaml --state sessions/site.jsonworkflow 详细写法与动作说明见:docs/workflow.md
全量操作文档(含所有命令/参数/动作/调试流程):docs/operations.md
- 会话文件(
sessions/*.json、storage_state.json、cookies.json)是敏感信息,已在.gitignore中忽略。 - 复杂网站常需要额外等待:优先用
wait_for(等待某个元素出现),其次再用sleep。
本项目定位是“在你有权访问的站点上,把登录会话与抓取流程自动化/固化”,不提供也不鼓励绕过验证码、人机验证、访问控制、封禁策略等行为。
如果你遇到 403/429、频繁跳登录、人机验证等拦截:
- 先确认是否 会话失效(重新
login保存新的sessions/*.json) - 用
inspect / selectors + --har把“页面真实请求的接口”分析清楚,尽量走站点允许的数据获取方式(如官方 API/导出) - 降低访问频率、做缓存/增量,避免给目标站点造成压力
更完整的排错与边界说明见:docs/operations.md