【发布时间】:2012-05-24 11:59:00
【问题描述】:
我想用一个或多个 python 库标记出感兴趣的维基百科页面。我对表格和列表最感兴趣。然后我希望能够将这些数据导入 Postgres 或 Neo4j。
例如,以下是我感兴趣的三个数据集:
- 每个国家/地区在 2008 年欧洲歌唱大赛中相互奖励了多少分: http://en.wikipedia.org/wiki/Eurovision_Song_Contest_2008#Final
- 货币列表及其流通国家(多对多关系): http://en.wikipedia.org/wiki/List_of_circulating_currencies
- 全球太阳能电站列表:http://en.wikipedia.org/wiki/List_of_solar_thermal_power_stations
每一个的来源都是用维基百科的标记品牌编写的,用于将它们呈现出来。原始数据表单中使用了许多特定于维基百科的标签和语法。 HTML 可能几乎是更简单的解决方案,因为我可以使用 BeautifulSoup。
有人知道更好的标记化方法吗?如果我采用最终的 HTML 并用 BeautifulSoup 解析它,我觉得我会重新发明轮子。另外,如果我能找到一种方法以 XML 格式输出这些页面,那么表数据可能没有被充分标记化,并且需要进一步处理。
【问题讨论】:
-
Here 是 wiki 语法的一些解析器。有一些 Python 解决方案,但您应该选择一个生成可以进一步处理的中间表示的解决方案。例如,mediawiki-parser 看起来很有希望。
-
Here's an example that uses mediawiki api to get data as XML. 注意:它不会标记标记(对于一些特定情况,处理原始文本可能比某些 mediawiki 标记解析器的标记输出更简单)。跨度>
标签: python web-scraping wikipedia