Php 使用DOM抓取网站标题

Php 使用DOM抓取网站标题,php,html,dom,Php,Html,Dom,可能的重复项: 如何使用PHPDOM获取网站标题?(使用PHP获取它的最佳方法是什么?您可以使用getElementByTagName(),因为从技术上讲,html中只有一个标题属性,所以您可以获取在DOM中遇到的第一个标题属性 $title = ''; $dom = new DOMDocument(); if($dom->loadHTMLFile($urlpage)) { $list = $dom->getElementsByTagName("title");

可能的重复项:


如何使用PHPDOM获取网站标题?(使用PHP获取它的最佳方法是什么?

您可以使用getElementByTagName(),因为从技术上讲,html中只有一个标题属性,所以您可以获取在DOM中遇到的第一个标题属性

$title = '';
$dom = new DOMDocument();

if($dom->loadHTMLFile($urlpage)) {
    $list = $dom->getElementsByTagName("title");
    if ($list->length > 0) {
        $title = $list->item(0)->textContent;
    }
}

抑制来自不正确HTML或缺少元素的任何分析错误:

<?

$doc = new DOMDocument();
@$doc->loadHTML(@file_get_contents("http://www.washingtonpost.com"));

// find the title
$titlelist = $doc->getElementsByTagName("title");
if($titlelist->length > 0){
  echo $titlelist->item(0)->nodeValue;
 }

领先我10秒,并给出了一个稍微好一点的例子。删除我的答案:)@Erik干杯。不幸的是,有时这感觉像是一场竞赛。
loadHTMLFile
已经包含文件内容,并且不会在格式错误的HTML上给出错误,因此它产生的任何错误都是有价值的
loadHTML
也不会给出格式错误的HTML的错误http://www.washingtonpost.com"); 现在我得到了一堆错误,上面写着警告:DOMDocument::loadHTMLFile()[DOMDocument.loadHTMLFile]:htmlParseEntityRef:应为“;”第5行的/var/www/test/test2.php中的第52行。也许是我的PHP版本,但是…你的权利-我道歉。我记得它会解析它,但它确实显示了警告。然而,@抑制方法仍然是一个糟糕的选择。您最好设置
libxml\u-use\u-internal\u错误(true)
以便您可以访问错误数据(如果您想要/需要toPoint):这既快又脏。使用错误抑制有点懒惰,我不知道它在幕后使用libxml。