检索(CDP 通道)
用确认后的关键词跑 scripts/cdp_search.py。
前置
- Chrome 已按
docs/SETUP.md以持久 profile + 调试端口 9222 启动。 websocket-client已装(python -c "import websocket"通过即可)。
期刊目录(可选)
- 若用户给定了期刊目录(如"只检索 TR-B / TS / EJOR"),把期刊名写进
journals.txt(一行一个),检索时加--journals journals.txt,脚本会用 Scholar 的source:"期刊名"操作符限定在目录内各期刊。 - 若用户没给目录,默认检索全部期刊(不加
--journals)。 - 注意:
source:是模糊子串匹配,个别结果可能串刊,manage 步会再按期刊名复核。
时间范围(可选)
- 若用户给定了时间范围(如"近三年""2023 至今"),检索时加
--from-year 2023 --to-year 2026(对应 Scholar 的as_ylo/as_yhi,可只给一端)。 - 若没给,默认检索全部文献(不加年份参数)。
步骤
- 把用户确认后的检索式写进
queries.json(字符串数组,或[{"q":"...","pages":3}]指定每条页数)。 - (若有期刊目录)把期刊名写进
journals.txt。 - 运行:
# 无目录、无年份(全部期刊、全部文献) python scripts/cdp_search.py --queries queries.json --out results.jsonl --pages 2 # 限定目录 + 限定年份 python scripts/cdp_search.py --queries queries.json --out results.jsonl --pages 2 \ --journals journals.txt --from-year 2023 --to-year 2026--pages N:每条检索式翻几页(每页 10 条);默认 2,总请求数 = 检索式数 × 期刊数 × N(目录大时请减少检索式或页数)。--throttle S:相邻请求间隔秒数,默认 8(太密会触发验证码)。--profile DIR/--port 9222:对应 SETUP.md 里启动 Chrome 的参数。
- 若脚本打印
[captcha]:让用户在 Chrome 窗口里手动过验证码,脚本会自动继续等待(默认最多 240s)。 - 脚本输出
results.jsonl,每行一条:title / meta / citedby / snippet / href / cid / query / page / journal。
注意
- 若 Chrome 没启动,脚本会报错并提示先按 SETUP.md 启动。
- 检索式之间脚本自动去重(按 Scholar 的 cluster id)。