如何通过pageid获取维基百科中特定页面的所有链接(id)

时间:2013-08-25 19:11:46

标签: php mediawiki wiki wikipedia-api mediawiki-api

我正在尝试使用Wiki API构建查询,该查询将返回来自id格式的特定文章的所有内部链接。 我有一些文章的pageId。例如,文章“Android(操作系统)”id是12610483。 在我的客户端,我只需要使用id,然后只能通过id获取所有信息。 我的目标是从文章ID中找到所有内部链接(文章的ID)。

不幸的是,我找到的唯一可行方法是获取由文章标题表示的链接: http://en.wikipedia.org/w/api.php?action=parse&format=json&pageid=12610483&prop=links

是否还有其他方法可以获取链接ID而不仅仅是标题?

2 个答案:

答案 0 :(得分:4)

您要做的是使用action=query&prop=linkspagelinks数据库表中获取数据,而不是解析页面文本。

这仍然只会为您提供页面标题(因为链接可能会导致页面不存在,这意味着没有页面ID)。

但是你可以使用prop=links作为生成器来解决这个问题:

http://en.wikipedia.org/w/api.php?action=query&format=json&pageids=12610483&generator=links&gpllimit=max

如果文章有很多链接(如你建议的那样),则需要使用分页(参见gplcontinue元素)。

答案 1 :(得分:-3)

我认为您需要使用PHP Simple HTML DOM Parser

你不能在这里找到它 http://simplehtmldom.sourceforge.net/