我正在尝试提取母公司信息(在信息框窗格中)以获取诸如“KFC”之类的页面。
如果您访问
url ...信息框包含属性(Parent = Yum!Brands)
..但是,当我通过PHP API访问时...不包括父信息。
我如何确保维基百科API也返回“Parent =”信息(对于像“KFC”这样的品牌术语)。基本上,我想通过维基百科API提取Yum Brands作为肯德基的父母的信息。
谢谢!
答案 0 :(得分:4)
查看wikipedia wiki获取信息的官方方式。
我的建议是使用屏幕抓取PHP Simple HTML DOM Parser,这将永远是最好的,即使它已被弃用。唯一的缺点是,如果维基百科改变了它的样子,你将不得不更新你的代码。
PHP简单HTML DOM解析器的 guide 。
编辑:
至少我正在做一些事情,而不是链接到非工作资源并低估正确的答案......
以下是我使用PHP Simple HTML DOM Parser从Infobox窗格获取Parent公司信息的代码。
<?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小时= /
谢谢;)
答案 1 :(得分:-1)
文章来源中没有包含该信息的文本行!它仅存在于您正在查看的文章中调用的{{Infobox KFC}}
模板中。
一般来说,维基百科的文章源代码只是偶然构建的 - 文章源主要是指在页面上生成所需输出的方法。如果您尝试从维基百科中提取结构化数据,您可能会对DBPedia项目收集的数据感兴趣。