首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在php中获取站点名称

问在php中获取站点名称
EN

Stack Overflow用户
提问于 2014-01-27 18:35:39
回答 1查看 360关注 0票数 0

我写了一个代码来压缩网站内容,比如facebook和google+,

代码语言:javascript
复制
 $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返回标题正确,有谁知道它是如何工作的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-27 18:40:31

请注意,正确和可靠的方法是使用<title>标记。当您询问如何从其他元素中获得标题时,我的回答将处理这个问题。

我不认为会有任何完全可靠的方式来做到这一点,但你可以让你的脚本进行一个很好的猜测标题是什么。

您想要的每个链接的标题共享一个共同的模式:

  1. 标题位于<h1>标记中。
  2. 标题的h1标记是页面上仅包含文本的第一个标题。

因此,这些示例的可靠脚本将找到页面上的所有<h1>标记,然后将"title“视为第一个只包含文本(不包含嵌套的html元素)的标记。

当你现在在评论中添加更多的链接时--不要期待一个对所有事情都有用的答案。任何人都能做的最好的就是检查元素,在页面源中搜索,并试图找到识别标题的模式。关于你帖子中的链接,我演示了这一点。如果您想要找到以其他方式显示的标题,那么您必须不断地为每个场景添加检查,并希望得到最好的结果。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21388838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档