我正在尝试为“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