加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 一种可靠的方式来刮取标题,描述和关键字

发布时间:2020-12-13 15:59:47 所属栏目:PHP教程 来源:网络整理
导读:目前我正在使用CURL来搜索网站.我想要可靠地获得标题,描述和关键字. //Parse for the title,description and keywordsif (strlen($link_html) 0){ $tags = get_meta_tags($link); // name $link_keywords = $tags['keywords']; // php documentation $link_d
目前我正在使用CURL来搜索网站.我想要可靠地获得标题,描述和关键字.

//Parse for the title,description and keywords
if (strlen($link_html) > 0)
{
    $tags = get_meta_tags($link);     // name
    $link_keywords = $tags['keywords'];     // php documentation
    $link_description = $tags['description'];
}

唯一的问题是人们现在正在使用各种元标记,例如开放图形< meta property =“og:title”content =“The Rock”/>.它们也会大量改变标签< title> <标题> < TITLE> <标题取代.要可靠地获得这些是非常困难的.

我真的需要一些能够一致地提取这些变量的代码.如果有一些标题,关键字和描述,只要它能找到它.因为现在它似乎很受欢迎.

也许是一种将所有标题提取到标题数组中的方法?然后,抓取Web开发人员可以选择最佳记录在他们的数据库中.同样适用于关键字和描述.

This is not a duplicate. I have searched through stackoverflow and
nowhere is this solution to place all “title”,“keywords” and
“description” type tags into arrays.

解决方法

通常,get_meta_tags()可以为您提供所需的大部分内容,您只需要设置一组级联检查,这些检查将从每个元数据系统中采样所需的字段,直到找到一个.例如,像这样:

function get_title($url) {
  $tags = get_meta_tags($url);
  $props = get_meta_props($url);
  return @tags["title"] || @props["og:title"] || ...
}

上面的实现显然效率不高(因为如果我们实现所有这样的getter你重新加载每个getter的URL),并且我没有实现get_meta_props() – 使用pcre_ *正确实现是有问题的并且繁琐到使用DOMDocument实现.

尽管很多工作仍然是一个正确的实现 – 这是外部库解决问题的经典场景!幸运的是,只有一个 – 简称为“嵌入”,你可以在github找到它,或者使用作曲家运行

composer require embed/embed

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读