我正在尝试抓取用户输入数据库的任何网站,以获取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;
之外,所有语句都有效。我能为此做点什么吗?
答案 0 :(得分:2)
通过添加/@href
只需稍微调整xpath。
$favicons = $full_site_xpath->query('//link[@rel="shortcut icon"]/@href');
$favicon->nodeValue
将包含您期望的内容。