我正在解析java中的wikipedia转储。在我的模块中,我想知道当前页面引用的wiki内部页面的页面ID。从中获取内部链接以及网址很容易。但是如何从网址获取网页ID。
我是否必须使用一些mediaWiki?如果是的话 还有其他选择吗?
例如:http://en.wikipedia.org/wiki/United_States 我想得到它的Page-Id,即3434750
答案 0 :(得分:7)
您可以使用API。具体来说,查询看起来像:
http://en.wikipedia.org/w/api.php?action=query&titles=United_States
(您还可以在titles
参数中指定多个页面标题,以|
分隔。)
作为替代方案,您可以下载page.sql
dump(英文维基百科的1 GB压缩版),其中也包含此信息。要实际查询它,您可以将其导入MySQL数据库然后查询,或者您可以直接解析SQL。
答案 1 :(得分:1)
如果您无法使用API,则始终可以通过将?action=info
附加到网址来获取信息页面中的pageID。应该为解析器提供更好的起点。
上面的示例:https://en.wikipedia.org/wiki/United_States?action=info