我们目前正在构建一个小型搜索引擎,我们希望为它爬取 GitHub 以获取公开可用的 KiCad 示意图。但是,我们不确定如何使用 GitHub API 尽可能高效地获取这些信息。这是我们目前的做法:
- 使用查询搜索包含 .kicad_pcb 文件的存储库,
.kicad_pcb in:path created:2015-01-01..2015-01-31
然后迭代数月。我们使用的是 PyGithub,所以实际代码是:
repos = g.search_repositories(f'.kicad_pcb in:path created:{dt.strftime("%Y-%m")}-01..dt.strftime("%Y-%m")}-{last_day[1]}')
- 使用代码搜索查询搜索每个存储库:
.kicad_pcb in:path repo:{repo.full_name}
但是,据我所知,我得到的文件在其路径中没有 .kicad_pcb 。另外,从 2015 年到现在,整个搜索只返回 228 个存储库和 462 个 kicad 文件,这似乎很少?谁能发现我们犯的错误或提出更好的方法?
附加问题:使用“搜索代码”功能,我们有时会收到异常,因为 GitHub 只能提供小于 1 MB 的“blob”。有什么办法可以防止这种情况发生吗?我们不需要将文件包含在搜索结果中,只要我们可以获取 url 以在以后下载它即可。