我正在嘗試爲「KFC」等頁面提取母公司信息(在信息框窗格中)。Wikipedia API - 從信息框中獲取完整信息
如果您訪問
網址...的信息框包含屬性(父=百勝)
.. howver,當我通過訪問PHP API ..不包括父級信息。
我如何保證維基API返回的「父=」信息,以及(對於一個品牌長期像「肯德基」)。基本上,我想通過維基百科API來提取Yum Brands是肯德基的母公司的信息。
謝謝!
我正在嘗試爲「KFC」等頁面提取母公司信息(在信息框窗格中)。Wikipedia API - 從信息框中獲取完整信息
如果您訪問
網址...的信息框包含屬性(父=百勝)
.. howver,當我通過訪問PHP API ..不包括父級信息。
我如何保證維基API返回的「父=」信息,以及(對於一個品牌長期像「肯德基」)。基本上,我想通過維基百科API來提取Yum Brands是肯德基的母公司的信息。
謝謝!
看看wikipedia wiki官方獲取信息的方式。
我的建議是使用屏幕抓取PHP Simple HTML DOM Parser這將始終是最好的,即使它已被棄用。唯一的缺點是,如果維基百科改變它的樣子,你將不得不更新你的代碼。
A guide to PHP Simple HTML DOM Parser。
編輯:
至少我做的,而不是鏈接到非工作資源和downvoting正確答案的東西...
這是我做來從信息框窗格中的母公司信息的代碼與PHP簡單的HTML DOM分析器。
<?php
//The folder where you uploaded simple_html_dom.php
require_once('/homepages/../htdocs/simple_html_dom.php');
//Wikipedia page to parse
$html = file_get_html('http://en.wikipedia.org/wiki/KFC');
foreach ($html->find ('tr th a[title=Holding company]') as $element) {
$element = $element->parent;
$element = $element->parent;
$tabella = $element->find ('td', 0);
//Now $parent contains "Yum! Brands"
$parent = $tabella->plaintext;
echo $parent;
}
?>
如果這個答案滿足您的需求,請選擇它作爲最佳答案,並給予好評,因爲我花了很大的力氣,約1小時=/
感謝;)
的線包含該信息的文本不在文章中!它只出現在您正在查看的文章中調用的{{Infobox KFC}}
模板中。
一般來說,維基百科文章的源代碼只是偶然構成的 - 文章的源代碼主要是指在頁面上生成所需輸出結束的手段。如果您嘗試從維基百科中提取結構化數據,則可能對DBPedia項目收集的數據感興趣。
DBPedia的JSON Web服務現在已經關閉,並且是我幾個月前檢查過的最後一次。我不知道是否有PHP的SPARQL庫,所以至少現在廢除原始頁面源代碼似乎是實現ChicagoDude所需的最佳選擇 – Vishal
ChicagoDude已經在使用MediaWiki API--建議他閱讀維基百科的文檔,指導他使用這個API沒有用,更不用說解決方案了。 – duskwuff
我正在指導他使用DOM解析器,這似乎是唯一的解決方案 –
感謝賈科莫 - 這真的有幫助! – ChicagoDude