1

我一直在尝试用 Python 解析一个维基百科页面,并且使用 API 非常成功。

但是,不知何故,API 文档对我来说似乎有点过于简陋,无法获取所有数据。截至目前,我正在做一个 requests.get() 调用

http://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=China&format=json&exintro=1

但是,这只会让我返回第一段。不是整个页面。我尝试使用所有页面和搜索,但无济于事。更好地解释如何从 wiki 页面获取数据会很有帮助。所有数据,而不仅仅是前面查询返回的介绍。

4

3 回答 3

3

您似乎正在使用查询操作来获取页面的内容。根据它的 api 规范,它只返回一部分数据。正确的操作似乎是查询。

这是一个示例

import urllib2
req = urllib2.urlopen("http://en.wikipedia.org/w/api.php?action=parse&page=China&format=json&prop=text")
content = req.read()
# content in json - use json or simplejson to get relevant sections.
于 2012-05-13T10:41:25.863 回答
1

您是否考虑过使用Beautiful Soup从页面中提取内容?

虽然我没有将它用于维基百科,但其他人已经使用它来抓取其他页面,它是一个很好的工具。

于 2012-05-13T10:39:29.073 回答
0

如果有人在这里寻找 python3 答案,你去:

import urllib.request
    req = urllib.request.urlopen("http://en.wikipedia.org/w/api.php?action=parse&page=China&format=json&prop=text")
    print(req.read())

我正在使用 python 版本 3.7.0b4。

于 2018-06-01T17:27:21.313 回答