我正在使用PHP libcurl加载页面。现在我需要获取此页面的< title>标签的内容,以及其他一些信息。我试图使用SimpleXML解析它,但没有运气,因为页面不是有效的XML。你能否提出一些其他方法来轻松获取< title>的内容?标签?谢谢。
答案 0 :(得分:3)
您可以使用DOMDocument::loadHTML。
这将回应“标题”:
<?php
$doc = <<<HTML
<html>
<head>
<title>The title</title>
<body>
hhhhhh
HTML;
libxml_use_internal_errors(true);
$d = new DOMDocument;
$d->loadHTML($doc);
$ts = $d->getElementsByTagName("title");
if ($ts->length > 0) {
echo $ts->item(0)->textContent;
}
答案 1 :(得分:1)
或者您可以使用Simple HTML DOM
答案 2 :(得分:0)
您可以使用此脚本获取页面标题。
# Script Title.txt
var str page, content
cat $page > $content
stex -r -c "^<title&</title&\>^" $content
将这个小代码保存在文件C:/Scripts/Title.txt中。代码是biterscripting。启动biterscripting,然后输入此命令。
script "C:/Scripts/Title.txt" page("http://stackoverflow.com/questions/3135488/how-can-i-get-pages-title-tags-content-if-it-cant-be-parsed-as-xml")
它将获得此页面的标题(您正在查看的那个)。使用任何其他URL或本地文件路径作为page()的值。使用双引号。当我执行这个命令时,我得到了
我怎样才能获得页面 &LT;标题&GT;标签的内容,如果它 无法解析为XML? - 堆叠 溢出
您可以从任何可执行文件或批处理文件中调用此脚本。
答案 3 :(得分:0)
尝试使用Yahoo的YQL控制台。您几乎可以查询任何网址,然后以XML格式查询结果。您甚至可以添加xpath来缩小范围。
http://developer.yahoo.com/yql/console/
也许您可以使用curl调用此服务。它非常方便。