6

我想通过 JSON 获得 Wikiquote 页面的结构化版本(基本上我需要所有短语)

示例: http://en.wikiquote.org/wiki/Fight_Club_(电影)

我试过:http ://en.wikiquote.org/w/api.php?format=xml&action=parse&page=Fight_Club_(film)&prop=text

但我得到了所有的 HTML 源代码。我需要每个短语作为数组的一个元素

我如何使用DBPEDIA实现这一目标?

http://f.cl.ly/items/2v3w1U2c0J0z1M0V0k0b/Schermata%2012-2456269%20alle%2013.06.24.png

4

2 回答 2

4

一方面,我不确定您是否可以使用 DBpedia 查询 wiki 引用,其次,DBpedia 仅以结构化方式为您提供信息框数据,它绝不会以结构化方式提供文章内容。取而代之的是,您可以使用 Media wiki api 来获取数据


编辑

您正在尝试的 URI 为您提供了一个文本,因此这将使事情变得更容易,但并不完全。

在您的控制台中尝试这段代码:

require 'Nokogiri'

content = JSON.parse(open("http://en.wikiquote.org/w/api.php?format=json&action=parse&page=Fight_Club_%28film%29&prop=text").read)

data = content['parse']['text']['*']

xpath_data = Nokogiri::HTML data

xpath_data.xpath("//ul/li").map{|data_node| data_node.text}

这是我得出的最接近答案的答案,当然这并不完全正确,因为您会得到很多不必要的数据。但是,如果您深入研究Nokogirixpath找出如何精确定位您需要的节点,您可以获得一个解决方案,该解决方案将在至少 90% 的情况下为您提供正确的报价。

于 2012-12-07T12:48:30.867 回答
1

只需将格式更改为 JSON。查找 Wikipedia API 以获取更多详细信息。 http://en.wikiquote.org/w/api.php?format=json&action=parse&page=Fight_Club_(film)&prop=text

于 2015-05-25T20:42:12.263 回答