我写了一个代码来压缩网站内容,比如facebook和google+,
$html = file_get_contents_curl($url);
if ($html) {
//parsing begins here:
$doc = new DOMDocument();
@$doc->loadHTML($html);
$nodes = $doc->getElementsByTagName('title');
//get and display what you need:
$title = $nodes->item(0)->nodeValue;
$metas = $doc->getElementsByTagName('meta');
for ($i = 0; $i < $metas->length; $i++) {
$meta = $metas->item($i);
if ($meta->getAttribute('name') == 'description')
$description = $meta->getAttribute('content');
}.
我得到了$title = $nodes->item(0)->nodeValue;的网页标题,但我需要获取新闻标题或内容标题(我的网址总是不新闻网站),我不想局限于某些网站,我想得到网站的内容标题。
例如,关塔那摩必须在奥巴马任期内关闭-俄罗斯外交部在http://rt.com/news/guantanamo-closure-russia-dolgov-245/
法国摆脱“阿美利”形象在中国与在http://www.france24.com/en/20140127-france-seeks-shed-amelie-image-50-years-after-opening-ties-with-china/上联系50年后
定义时刻:捕捉我们不断变化的世界-- in bn3
我知道通常的方法是获取H1或H2标签,但我需要获取那些没有实现新闻标题的站点的标题,并以<div>标记为例。
http://www.mehrnews.com/detail/News/2222373
更新--我在google+中测试了这个 链接 ,并测试了标题不在标签中的另一个url,并且google返回标题正确,有谁知道它是如何工作的?
发布于 2014-01-27 18:40:31
请注意,正确和可靠的方法是使用<title>标记。当您询问如何从其他元素中获得标题时,我的回答将处理这个问题。
我不认为会有任何完全可靠的方式来做到这一点,但你可以让你的脚本进行一个很好的猜测标题是什么。
您想要的每个链接的标题共享一个共同的模式:
<h1>标记中。因此,这些示例的可靠脚本将找到页面上的所有<h1>标记,然后将"title“视为第一个只包含文本(不包含嵌套的html元素)的标记。
当你现在在评论中添加更多的链接时--不要期待一个对所有事情都有用的答案。任何人都能做的最好的就是检查元素,在页面源中搜索,并试图找到识别标题的模式。关于你帖子中的链接,我演示了这一点。如果您想要找到以其他方式显示的标题,那么您必须不断地为每个场景添加检查,并希望得到最好的结果。
https://stackoverflow.com/questions/21388838
复制相似问题