我在 DB 中得到了许多 Wikipedia pageID,其中一些已经被重定向到其他地方。
所以我想知道如何获得这些新的 pageID。
我检查维基百科网站:
http://en.wikipedia.org/wiki/?curid=11601783
它说 (Redirected from....) 这意味着它不是我想要的主要链接。好的链接应该是:
http://en.wikipedia.org/wiki/?curid=34344124
所以我想知道如何通过 API 搜索获取最终的 pageID,例如:
http://en.wikipedia.org/w/api.php?action=query&format=json&prop=extracts&pageids=11601783
我应该使用哪些参数?
最佳答案
要使 API 解析重定向,只需添加 redirects
到查询。因此,例如:
http://en.wikipedia.org/w/api.php?action=query&format=json&pageids=11601783&redirects
将为您提供重定向目标的页面 ID。
对多个页面使用单个查询似乎不是一个好方法,因为 redirects
部分响应从标题映射到标题,而不是页面 ID(我假设您不知道重定向页面的标题)。
解决这个问题的一种方法是结合 redirects
与 prop=redirects
:
http://en.wikipedia.org/w/api.php?action=query&format=json&pageids=11601783&redirects&prop=redirects&rdlimit=max
这将为您提供指向目标页面的所有重定向,包括它们的页面 ID。
关于维基百科搜索 API 获取重定向 pageID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22235903/