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。