PHP Scrape外部网站的favicon

时间:2015-05-07 17:54:45

标签: php web-scraping

我正在尝试抓取用户输入数据库的任何网站,以获取favicon与PHP的链接。

我可以使用这个简单的代码抓取网站:

$url = "http://www.youtube.com";
$output = file_get_contents($url);
echo $output;

我可以从那里看到整个youtube网站。但我需要的是获得favicon链接。我开始关注this tuturial以获取某些数据,但这看起来只是抓住了正文中的元素?

$url = "http://www.youtube.com";
$output = file_get_contents($url);
$full_site = new DOMDocument();
libxml_use_internal_errors(TRUE);
if(!empty($output)){
    $full_site->loadHTML($output);  
    libxml_clear_errors();
    $full_site_xpath = new DOMXPath($full_site);
    $favicons = $full_site_xpath->query('//link[@rel="shortcut icon"]');
    if($favicons->length > 0){
        foreach($favicons as $favicon){
            echo $favicon->nodeValue;
            echo "test";
        }
    }
}

不幸的是,这并没有输出任何东西(除了" test")。除echo $favicon->nodeValue;之外,所有语句都有效。我能为此做点什么吗?

1 个答案:

答案 0 :(得分:2)

通过添加/@href只需稍微调整xpath。

$favicons = $full_site_xpath->query('//link[@rel="shortcut icon"]/@href');

$favicon->nodeValue将包含您期望的内容。