如何基于搜索查询从stackoverflow API获取问题列表?

Vis*_*ish 5 search json stackexchange-api

我对获取基于标签或搜索查询的问题列表感兴趣。我举一个例子。

因此,如果我将搜索关键字用作“ ipv4”,它应该给我大量与ipv4相关的问题。我要做的就是以列表或数组的形式获取问题(标题),以便对其进行处理。

Teo*_*irs 9

Stackexchange 提供https://api.stackexchange.com/docs/advanced-search端点。

例如, get on https://api.stackexchange.com/search/advanced?site=stackoverflow.com&q=firebase 会返回如下内容:

在此输入图像描述

这是最简单的示例,但正如您在文档中发现的那样,有许多参数可供执行搜索。他们之中有一些是:

  • 已接受 - true 表示仅返回已接受答案的问题, false 表示仅返回未接受答案的问题。省略以消除约束。
  • 答案 - 返回问题必须具有的最少答案数。
  • 正文 - 必须出现在返回问题正文中的文本。
  • tagged - 以分号分隔的标签列表,其中至少有一个将出现在所有返回的问题中。
  • 标题 - 必须出现在返回问题标题中的文本。
  • user - 必须拥有返回问题的用户的 ID。
  • ...

希望这可以帮助!

干杯!


And*_*ndy 5

您可以使用questions/路线获取此信息。在此调用中,您会将您感兴趣的标签传递给tagged参数(以分号 ( ;)分隔)。

要限制返回给带有一组标签的问题,请使用带分号分隔的标签列表的 tagged 参数。这是一个约束,传递tagged=c;java将只返回带有两个标签的问题。因此,传递超过 5 个标签将始终返回零结果。

对于您的特定问题(搜索ipv4),您可以以此为起点:

http://api.stackexchange.com/docs/questions#order=desc&sort=activity&tagged=ipv4&filter=!BHMIbze0EPheMk572h0ktETsgnphhU&site=stackoverflow&run=true
Run Code Online (Sandbox Code Playgroud)

filter是可选的,但我已经剥离出来的一些默认字段来呈现一个小例子。上面的链接返回如下所示的条目:

"items": [
{
  "tags": [
    "ruby-on-rails",
    "ipv4",
    "geokit"
  ],
  "link": "http://stackoverflow.com/questions/29460004/rails-geokit-incorrectly-converting-ipv4-address-to-latitude-and-longitude",
  "title": "Rails: Geokit incorrectly converting IPv4 address to latitude and longitude"
},
{
  "tags": [
    "networking",
    "ip",
    "ipv4",
    "maxmind",
    "cidr"
  ],
  "link": "http://stackoverflow.com/questions/28358851/merging-of-multiple-ipv4-address-blocks-on-the-basis-of-their-country-region",
  "title": "merging of multiple IPv4 address blocks on the basis of their country region"
},
...
}
Run Code Online (Sandbox Code Playgroud)

  • @Andy 你展示了如何按标签搜索,但如果我想按标题字段搜索怎么办?我一直在阅读堆栈交换 API,但找不到这样做的方法 (2认同)