我正在尝试使用简单的html dom(TITLE标签之间的页面标题)从外部网站获取标题,但它不会检索任何内容。有什么想法吗?
$html = new simple_html_dom();
$html->load('http://www.google.com');
$titleraw = $html->find('title');
$title = $titleraw->title;
答案 0 :(得分:2)
->load()
需要一个包含HTML的字符串,而不是一个URL。
尝试:
$html = file_get_html('http://google.com');
代替。
除此之外,请注意谷歌的ToS禁止屏幕抓取工具,所以希望你只是使用该网址作为填充示例,而不是你真正试图刮擦的任何内容。
答案 1 :(得分:2)
$html = new simple_html_dom();
$html->load_file('http://www.google.com');
$titleraw = $html->find('title',0);
$title = $titleraw->innertext;
$html->load_file()
从文件或网址加载内容。
$html->find('title')
将返回一个数组
和$titleraw->innertext
返回标题元素的内容
答案 2 :(得分:1)
if(
preg_match(
'~<title>(.*)</title>~si',
file_get_contents('http://www.google.com'),
$result
);
var_dump($result[1]);
}else{ /* no result */ }
其他
$titleraw = $html->xpath('//title');
答案 3 :(得分:1)
简单地
$mypage=file_get_html('http://myurl.com');
$title=$mypage->find('title',0);
echo $title->plaintext;
答案 4 :(得分:1)
使用此
$html = new simple_html_dom();
$html->load('http://www.google.com');
$titleraw = $html->find('title');
foreach($html->find('title') as $link_element) {
echo $link_element->plaintext;
}
而不是$title = $titleraw->title;
答案 5 :(得分:0)
使用DOM和xpath可以:
function getTitle($url) {
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadHTMLFile($url);
$xpath = new DOMXPath($doc);
$nlist = $xpath->query("//head/title");
return $nlist->item(0)->nodeValue;
}
echo "Title: " . getTitle("http://www.google.com") . "\n";
答案 6 :(得分:0)
尝试
include_once 'simple_html_dom.php';
$oHtml = str_get_html($url);
$Title = array_shift($oHtml->find('title'))->innertext;
$Description = array_shift($oHtml->find("meta[name='description']"))->content;
$keywords = array_shift($oHtml->find("meta[name='keywords']"))->content;
echo $title;
echo $Description;
echo $keywords;
答案 7 :(得分:0)
试试这个
$html = new simple_html_dom()
$data = file_get_html('http://www.google.com/');
// Find all images
foreach($html->find('title') as $element)
echo $element->plaitext . '<br>';