【问题标题】:Is there a way to download the entire SBIR awards as a JSON file?有没有办法将整个 SBIR 奖项下载为 JSON 文件?
【发布时间】:2019-03-27 19:06:34
【问题描述】:

对于我的工作,我需要创建一个 Python 程序来自动从 SBIR 下载“奖励”的所有结果。

目前有 171616 个结果。

我有两个可能的选择。我一次可以下载 1000 个,但我需要验证我不是 reCAPTCHA 的机器人,因此我无法自动下载。

或者我可以使用他们的 API,这很棒!但是在搜索所有可用的内容时,它只会下载 100 个结果。有没有办法遍历块,然后将其编译成一个大的 JSON 文件?

这是documentation

这是where我说file>save as>filename.json

任何帮助/建议都会真正帮助我。

【问题讨论】:

  • 除非有人破解了验证码,否则我会说通过 API 是唯一的选择,对于一次更多的结果,您可以继续循环访问他们的 api 并将新的 json 附加到更大的对象中.
  • 就是这样。我不知道如何使用将块从第一个 100 更改为第二个 100 ......等等。在我以前使用不同来源的项目中,我能够循环增加块,但这不适用于这个。 ........ds=d&flds=e&down_chunk=1........ds=d&flds=e&down_chunk=2........ds=d&flds=e&down_chunk=3

标签: python json xml api dataframe


【解决方案1】:

嗯,一种方法是循环浏览您知道的参数的可能组合。例如,API 接受参数“年份”和“公司”等。您可以从授予该奖项的最早年份开始,比如 1990 年,然后循环到现在为止。

https://www.sbir.gov/api/awards.json?year=2010
https://www.sbir.gov/api/awards.json?year=2011
https://www.sbir.gov/api/awards.json?year=2012

通过这种方式,您每年最多可以获得 100 个奖项。这更好,但是你提到有 171616 个可能的结果,这意味着每年超过 100 个,所以它不会得到所有的结果。您可以组合使用另一个参数“公司”。

https://www.sbir.gov/api/awards.json?year=2010&company=luna
https://www.sbir.gov/api/awards.json?year=2011&company=luna
https://www.sbir.gov/api/awards.json?year=2010&company=other_company
https://www.sbir.gov/api/awards.json?year=2011&company=other_company

现在,您每年可以为每家公司获得多达 100 个结果。这会给你更多的结果。您可以从他们提供的另一个端点获取公司列表,这似乎对显示的结果没有限制-https://www.sbir.gov/api/firm.json,但请注意,输出的 json 绝对庞大,可能会冻结您的笔记本电脑。您可以将该 json 中的值用于“公司”参数并循环浏览这些值。

当然,所有这些都是一种解决方法,但仍不能保证您获得所有结果(尽管它可能获得所有结果)。我的第一个行动是尝试联系网站管理员,告诉他们您的问题。对于返回大量结果列表的 api,通常要做的事情是在 url 中提供一个 page 参数 - https://www.sbir.gov/api/awards.json?page=2 以便您可以循环浏览结果页面。也许你可以说服他们这样做。

【讨论】:

  • 下载和导入 JSON 文件时,它给了我 61,440... 不完全是 171,616,但它向前迈出了一大步。您在哪里找到此链接 - sbir.gov/api/firm.json
【解决方案2】:

我希望他们有更好的文档。看来我们可以通过以下方式进行分页:

https://www.sbir.gov/api/awards.json?agency=DOE&start=100

https://www.sbir.gov/api/awards.json?agency=DOE&start=200

https://www.sbir.gov/api/awards.json?agency=DOE&start=300

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-07
    • 2020-10-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    • 2015-10-02
    • 2020-09-23
    相关资源
    最近更新 更多