使用API​​从维基百科页面返回特定数据

时间:2016-12-21 16:27:21

标签: web-scraping mediawiki-api

我想解析维基百科上的地理页面(即地标,名胜古迹),以返回仅包含页面标题的json文件,以及从页面中删除的GIS坐标。

例如,查看页面:https://en.wikipedia.org/wiki/The_Sanctuary

使用api:https://en.wikipedia.org/w/api.php?action=query&titles=The%20Sanctuary&prop=revisions&rvprop=content&format=json返回页面内容中的所有数据。

但是,我只想返回以下元素:

“title”:“The Sanctuary” 坐标| 51.41000 | N | 1.83173 | W

请任何人都可以建议如何正确构建网络服务电话?

这是我第一次尝试从网页抓取内容,所以任何指导都非常感谢

1 个答案:

答案 0 :(得分:1)

刮擦的经验法则是不要这样做。 API中提供了许多内容(使用API sandbox来发现它们)。对于大多数其他有趣的数据,有人已经写了一个库。

在这种情况下,action=query&titles=The_Sanctuary&prop=coordinates会为您提供所需内容:

{
    "batchcomplete": "",
    "query": {
        "pages": {
            "788970": {
                "pageid": 788970,
                "ns": 0,
                "title": "The Sanctuary",
                "coordinates": [
                    {
                        "lat": 51.41,
                        "lon": -1.83173,
                        "primary": "",
                        "globe": "earth"
                    }
                ]
            }
        }
    }
}