2012-12-07 67 views
5

tôi muốn để có được một phiên bản có cấu trúc của một trang Wikiquote qua JSON (về cơ bản tôi cần tất cả các cụm từ)Wiki trích dẫn API?

Ví dụ:http://en.wikiquote.org/wiki/Fight_Club_(film)

Tôi đã thử với: http://en.wikiquote.org/w/api.php?format=xml&action=parse&page=Fight_Club_(film)&prop=text

nhưng tôi nhận được tất cả HTML mã nguồn. Tôi cần mỗi pharse như một phần tử của một Array

Làm cách nào để đạt được điều đó với DBPEDIA?

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

Trả lời

3

Đối với một điều Iam không chắc chắn cho dù bạn có thể truy vấn có dấu ngoặc kép wiki sử dụng dbpedia và thứ hai, dbpedia cung cấp cho bạn chỉ dữ liệu hộp thông tin một cách có cấu trúc, nó không theo một cách bất kỳ nội dung bài viết trong một cách có cấu trúc. Thay vào đó với một chút rắc rối bạn có thể sử dụng api Truyền thông wiki để có được những dữ liệu

EDIT:

URI bạn đang cố gắng mang đến cho bạn một văn bản vì vậy đây sẽ làm cho mọi việc dễ dàng hơn nhưng không hoàn toàn. Hãy thử đoạn mã này trong bảng điều khiển của bạn.

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} 

Đây là câu trả lời gần nhất, điều này không hoàn toàn đúng vì bạn sẽ nhận được rất nhiều dữ liệu không cần thiết. Nhưng nếu bạn đào sâu vào Nokogiri và xpath và tìm hiểu cách ghim các nút bạn cần, bạn có thể nhận được giải pháp sẽ cung cấp cho bạn báo giá chính xác ít nhất 90% số lần

+0

Tuyệt vời! Và nếu tôi muốn nhận html/plain text thay vì wikitext? – sparkle

+0

Xin hãy cho tôi một giây. bị chỉnh sửa câu trả lời của tôi. – djd

Các vấn đề liên quan