从openRefine上的单词列表中获取URL

时间:2017-02-28 17:35:48

标签: openrefine

我在第1列中有一个组织列表(包含空格的字符串,例如联合国),并希望使用第1列值作为搜索填充第二列及相关的URL(例如www.un.org/)串。地理编码过程相当简单(http://enipedia.tudelft.nl/wiki/OpenRefine_Tutorial#Geocoding_names_and_addresses),所以我想知道是否有办法使用谷歌搜索或其他网络服务执行此任务。这将是一个命中与错过的方法,但它胜过手动编辑。谢谢!

1 个答案:

答案 0 :(得分:0)

如果没有具体的例子,很难回答如此广泛的问题。但是,当然,我们可以使用Open Refine来使用大量API或通过网络抓取来丰富数据。并且过程几乎总是相同的:重建URL,“通过获取URL添加列”,然后解析生成的HTML,XML或JSON文件列。

以下是如何从名单列表中调用Wikipedia search API的示例。

screencast

重建网址非常简单:

"https://en.wikipedia.org/w/api.php?action=opensearch&search="

+ value.escape('url')

+ "&limit=10&namespace=0&format=xml"

对于value='United Nations',会给出这样的内容:

https://en.wikipedia.org/w/api.php?action=opensearch&search=united+nations&limit=10&namespace=0&format=xml

然后可以解析XML内容以提取您需要的项目。例如,要获取维基百科页面的描述:

value.parseHtml().select('Description').htmlText()