2012-12-07 1 views
5

I JSON経由ウィキクォートページの構造化されたバージョンを取得したい(基本的に私はすべてのフレーズを必要とする)WikiではAPIを引用していますか?

例:http://en.wikiquote.org/wiki/Fight_Club_(film)

私が試した:http://en.wikiquote.org/w/api.php?format=xml&action=parse&page=Fight_Club_(film)&prop=text

が、私はすべてのHTMLを取得ソースコード。配列の要素として各pharseが必要です

DBPEDIAでどうすれば実現できますか?あなたは第二DBpediaのを使用してのwiki引用符を照会し、できるかどうかわからない一つのことはIAMのために

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

答えて

3

、DBpediaのはあなたに構造化された方法でのみ情報ボックスのデータを与え、それが中にどのような方法記事の内容にはしません構造化された方法。代わりに、トラブルの少しであなたは、データ

EDIT取得するメディアウィキ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} 

これは私が答えに来たところですが、もちろん、これは完全に正しくはありません。なぜなら、不要なデータがたくさんあるからです。しかし、Nokogiriとxpathを掘り下げて、必要なノードをピンポイントする方法を見つけたら、90%以上の時間を正確に引用できるソリューションを得ることができます。

+0

恐ろしい!そして、もし私がwikitextの代わりにhtml/plainテキストを取得したいのであれば? – sparkle

+0

ちょっと待ってください。私の答えを編集してください。 – djd

関連する問題