Google新闻Feed内容

时间:2013-02-18 18:16:11

标签: php xml feed

让我们说我有一个谷歌新闻源,如下所示:https://news.google.com/news/feeds?pz=1&cf=all&ned=no_no&hl=no&q=%22something%22&output=atom&num=1

抓住标题,作者和链接会很容易,但我怎么会去说出内容的前200个字符呢?它充满了HTML,并与标题和作者混合在一起。

我可以在它上面使用strip_tags,但它仍然会很乱。

任何让google返回['description']的方法吗?

或者是否有其他好消息可以让我以更容易管理的方式提供内容?

[编辑]

更新我最终如何做到这一点。

$news = @simplexml_load_string(file_get_contents('https://news.google.com/news/feeds?pz=1&cf=all&ned=no_no&hl=no&q=%22molde+fotballklubb%22+OR+%22tornekrattet%22+OR+%22mfk%22+OR+%22oddmund+bjerkeset%22+-%22moss%22&output=atom&num=1'),  'SimpleXMLElement', LIBXML_NOCDATA);

        $data = get_object_vars($news->{'entry'});
        $test = explode('<font size="-1">', $data['content']);
        $link = get_object_vars($data['link']);

        $return['title']        = strip_tags($test[0]);
        $return['author']       = strip_tags($test[1]);
        $return['description'] = strip_tags($test[2]);
        $return['link']         = $link['@attributes']['href'];

它仍然无法正常工作,但这是因为Feed始终以不同的方式提供内容。有时,新闻文章本身的内容只是作者和图像描述等元数据。

当html不时发生变化时,html标签将其分解会导致一些问题。但我无法弄清楚用这种饲料做任何其他方式。

1 个答案:

答案 0 :(得分:0)

您可以尝试在DOMDocument实例中加载HTML并提取所需的部分,或者像Goutte一样使用包装器,这样可以更轻松地提取所需的部分。

http://php.net/manual/en/class.domdocument.php

https://github.com/fabpot/Goutte