【问题标题】:Wikipedia API - get full information from infoboxWikipedia API - 从 infobox 获取完整信息
【发布时间】:2014-02-08 07:09:17
【问题描述】:

我正在尝试为诸如“肯德基”之类的页面提取母公司信息(在信息框窗格中)。

如果你访问

http://en.wikipedia.org/wiki/KFC

url...信息框包含属性 (Parent = Yum! Brands)

.. 但是,当我通过 PHP API.. 访问时,不包括父信息。

http://en.wikipedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=KFC&rvsection=0

我如何确保 Wikipedia API 也返回“Parent =”信息(对于“KFC”等品牌术语)。本质上,我想通过 wikipedia API 提取 Yum Brands 是 KFC 的父级的信息。

谢谢!

【问题讨论】:

    标签: php api wikipedia


    【解决方案1】:

    看看wikipedia wiki官方获取信息的方式。

    我的建议是使用屏幕抓取PHP Simple HTML DOM Parser,即使它已被弃用,它也始终是最好的。唯一的缺点是,如果 Wikipedia 改变它的外观,您将不得不更新您的代码。

    guide 到 PHP 简单 HTML DOM 解析器。

    编辑:

    至少我正在做某事,而不是链接到非工作资源并否决正确答案...

    这是我使用 PHP Simple HTML DOM Parser 从信息框窗格中获取母公司信息的代码。

    <?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 小时 =/

    谢谢 ;)

    【讨论】:

    • ChicagoDude 已经在使用 MediaWiki API - 建议他阅读 Wikipedia 的文档来指导他使用此 API 没有用,更不用说解决方案了。
    • 我正在指导他使用 DOM Parser,这似乎是唯一的解决方案
    猜你喜欢
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-25
    相关资源
    最近更新 更多