0

我正在尝试使用简单的 html dom(标题标签之间的页面标题)从外部站点获取标题,但它没有检索任何内容。有任何想法吗?

$html = new simple_html_dom();
$html->load('http://www.google.com');
$titleraw = $html->find('title');
$title = $titleraw->title;
4

8 回答 8

3
$html = new simple_html_dom();
$html->load_file('http://www.google.com'); 
$titleraw = $html->find('title',0);
$title = $titleraw->innertext;

$html->load_file()从文件或 URL 加载内容。

$html->find('title')将返回一个数组

$titleraw->innertext返回标题元素的内容

于 2013-02-05T02:52:39.627 回答
2

->load()需要一个包含 HTML 的字符串,而不是 URL。

尝试:

$html = file_get_html('http://google.com');

反而。

除此之外,请注意 google 的 ToS 禁止屏幕抓取工具,因此希望您只是将该 url 用作填充示例,而不是您真正想要抓取的任何内容。

于 2012-01-09T15:21:48.580 回答
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');
于 2012-01-09T15:21:10.207 回答
1

简单地

$mypage=file_get_html('http://myurl.com');
$title=$mypage->find('title',0);
echo $title->plaintext;
于 2014-05-30T13:12:17.260 回答
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;

于 2017-10-25T18:15:10.397 回答
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>';
于 2013-09-20T06:46:05.690 回答
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";
于 2012-01-09T15:43:50.960 回答
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;
于 2013-09-20T06:33:01.617 回答