You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何无分页获取Github组织下依赖指定库的仓库名称列表

实现方案

你当前的结果少主要有三个原因:固定分页页数导致漏页、并行请求触发Github反爬拦截、正则匹配网页结构不稳定,可选择以下两种更稳定的方案实现需求:

方案一:使用Github官方工具gh CLI实现(优先推荐)

这是最稳定不需要处理分页、认证、反爬的方案,直接调用官方搜索能力:

  • 先安装官方命令行工具gh并完成认证
  • 直接执行以下命令即可输出去重后的符合条件的仓库名:
# 替换尖括号内容为你的实际参数即可
gh search code "<import string_utils的匹配内容>" \
  --org <你的目标组织名> \
  --filename <要匹配的文件名,比如pom.xml> \
  --json repository \
  --jq '.[].repository.full_name' \
  | sort -u

该命令会自动处理分页逻辑,不会出现漏页问题,也不需要你手动解析网页内容,匹配准确率远高于自行爬取网页。

方案二:优化原有爬虫脚本

如果必须使用原有curl爬网页的逻辑,做以下修改即可解决分页问题:

  • 去掉固定的$PAGES变量,每次请求后提取页面分页导航栏的最大页码,动态循环到最大页为止
  • 去掉xargs的-P0全并行参数,改为-P2低并发请求,避免触发反爬返回空结果
  • 给curl添加重试参数--retry 3 --retry-delay 5,避免临时网络波动导致漏页
  • 正则匹配的规则可以优化,避免页面结构微调导致匹配失效
  • 如果符合条件的仓库总数超过1000个(Github搜索的硬上限),需要拆分搜索条件,比如按仓库创建时间段拆分多次搜索后合并结果,即可拿到全量数据。

内容的提问来源于stack exchange,提问作者Cuauhtli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 11:27:04