mediawiki java api_如何使用mediawikiapi从(德语)Wikipedia中提取Infobox?

我想从特定的维基百科页面(主要是国家)中提取信息框中的信息。具体地说,我希望在不使用Python+BeautifulSoup4或任何其他语言+库(如果可能的话)来抓取页面。我宁愿使用官方API,因为我注意到不同Wikipedia子域的CSS标记是不同的(就像在其他语言中一样)。在

In How to get Infobox from a Wikipedia article by Mediawiki API?声明使用下面的方法可以工作,对于给定的标题(Scary Monsters and Nice Sprites),这确实是正确的,但不幸的是,在我尝试过的页面上不起作用(下面进一步)。在https://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xmlfm&titles=Scary%20Monsters%20and%20Nice%20Sprites&rvsection=0

但是,我假设Wikimedia更改了它们的infobox模板,因为当我运行上面的查询时,我得到的只是内容,而不是{}。E、 g.在Europäische_Union(欧盟)上运行查询会得到以下片段中的结果(以及其他结果)

^{pr2}$

不过,对于英文版的维基百科来说,它很好用。在

所以我想从中提取infobox的页面是:http://de.wikipedia.org/wiki/Europäische_Union

这是我使用的代码:#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys

reload(sys)

sys.setdefaultencoding("utf-8")

import lxml.etree

import urllib

title = "Europäische_Union"

params = { "format":"xml", "action":"query", "prop":"revisions", "rvprop":"content", "rvsection":0 }

params["titles"] = "API|%s" % urllib.quote(title.encode("utf8"))

qs = "&".join("%s=%s" % (k, v) for k, v in params.items())

url = "http://de.wikipedia.org/w/api.php?%s" % qs

tree = lxml.etree.parse(urllib.urlopen(url))

revs = tree.xpath('//rev')

print revs[-1].text

我错过了什么重要的东西吗?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值