我一直在尝试用Python解析wikipedia页面,并且使用API非常成功。
但是,不知何故,API文档对我来说似乎太简陋了,无法获得所有数据。到目前为止,我正在执行一个requests.get()调用
http://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=China&format=json&exintro=1
但是,这只返回了第一段。而不是整个页面。我尝试使用所有页面和搜索,但都无济于事。更好地解释如何从维基页面获取数据将是真正有帮助的。所有数据,而不仅仅是前一个查询返回的介绍。
发布于 2012-05-13 10:41:26
您似乎正在使用查询操作来获取页面的内容。根据它的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-13 10:39:29
您是否考虑过使用Beautiful Soup从页面中提取内容?
虽然我还没有在维基百科上使用过它,但其他人已经用过了,并且用它来抓取其他页面,这是一个很好的工具。
发布于 2018-06-01 17:27:21
如果有人正在寻找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。
https://stackoverflow.com/questions/10570969
复制