2013-03-19 31 views
0

我們正在努力獲取意大利語來自維基百科api的數據。我們有多個名字,需要獲得前10個結果。從維基百科獲取意大利語名稱Api

例如我們希望從這一結果的「Persone」部分收集數據:http://it.wikipedia.org/wiki/Francesco_(nome)

眼下我想這種做法:

$kw = $name."_(nome)"; 
$url = "http://it.wikipedia.org/w/api.php?format=json&action=query&titles=".$kw."&prop=revisions&rvprop=content"; 

其他問題並沒有太大的幫助,我越來越沒有輸出。

+1

您使用'的file_get_contents()'???只要將一個變量設置爲一個URL就不會獲得該URL的內容。 – 2013-03-19 19:01:29

+0

你是什麼意思,沒有輸出?你有錯誤嗎?你是否知道[你必須設置User-Agent頭](http://www.mediawiki.org/wiki/API:Main_page#Identifying_your_client)? – svick 2013-03-19 22:58:36

回答

0

您可以使用php dom parserDocs

通過簡單的查找在這裏他們的DOM是第一名稱代碼:

require('dom/simple_html_dom.php'); 

$name = 'Francesco'; 
$kw = $name . '_(nome)'; 
$html = file_get_html('http://it.wikipedia.org/wiki/' . $kw); 

$span = $html->getElementById('Persone'); 
$h2 = $span->parent(); 


$ul = $h2->next_sibling()->next_sibling()->next_sibling()->next_sibling(); 

$lis = $ul->find('li'); 

foreach($lis as $li){ 
    echo($li->plaintext . '<br />'); 
} 
+0

是的,這是一個很好的建議。 「persone」的問題是隻用了一段時間.. – 2013-03-28 16:00:40