如何解析Python中的维基百科页面?
问题描述:
我一直试图在Python中解析一个维基百科页面,并且使用这个API已经相当成功。如何解析Python中的维基百科页面?
但是,以某种方式API文档似乎有点太骨架,我得到的所有数据。 截至目前,我正在做一个requests.get()调用
http://en.wikipedia.org/w/api.php?action=query&prop=extracts&titles=China&format=json&exintro=1
但是,这只是返回我的第一段。不是整个页面。我试图使用allpages和搜索,但无济于事。如何从维基页面获取数据的更好的解释会有实际的帮助。所有数据,而不仅仅是前一个查询返回的介绍。
答
您似乎正在使用查询操作来获取页面的内容。根据它的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.
答
您是否考虑过使用Beautiful Soup从页面中提取内容?
虽然我没有使用过这个维基百科,但其他人已经使用它来刮擦其他页面,并且它是一个很好的工具。
+2
不会刮花费更多的时间比使用的API? – Hick
我注意到一个拼写错误,它的'urllib'而不是'urlib'我在我的编辑 –
中修复谢谢@JakobBowyer没有意识到它。 –