微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

目前我正在使用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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐