我在数据库中有许多Wikipedia pageID,其中一些已经重定向到其他地方。
因此,我想知道如何获取这些新的pageID。
我查看Wikipedia网站:
http://en.wikipedia.org/wiki/?curid=11601783
它说(重定向自...),这意味着它不是我想要的主要链接。好的链接应该是:
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。