PHP自动识别采集何意网址文章正文内容

在做PHP采集内容时,用过querylist采集组件,但是这个插件采集页面内容时,都必须要写个采集选择器。这样比较麻烦,每个文章页面都必须指定一条采集规则 。就开始着手找一个插件可以能自动识别任意文章url正文内容并采集的,发现有一个插件,是采集内容标签给每个标签拆开后打分来分析出正文内容的,下面给大家展示实现的过程及代码。

先看截图:
在这里插入图片描述
采集代码:

try{
            $ql = QueryList::get($url);
        }catch(RequestException $e){
            //print_r($e->getRequest());
            return json(['status'=>false,'msg'=>'Http Error:服务器错误,url不存在']);die;
        }
        //queryData 方法等同于  query()->getData()->all()
        //$query = $ql->rules($rules)->queryData();

        $title_rule = json_decode(htmlspecialchars_decode($title_rule),true);
        $content_rule = json_decode(htmlspecialchars_decode($content_rule),true);
        if($thumb_rule)
        $thumb_rule = json_decode(htmlspecialchars_decode($thumb_rule),true);
        $photos_range = htmlspecialchars_decode($photos_range);


        if(is_array($content_rule)&&is_array($title_rule))
        {
            $rules = [
                'title' => $title_rule,
                'seo_title' => ['title','text'],
                'keywords' => ['meta[name=keywords]','content'],
                'description' => ['meta[name=description]','content'],
                'content' => $content_rule,
                'thumb' => $thumb_rule
            ];

            if(empty($thumb_rule))
                unset($rules['thumb']);

        }
        else
        {
            $rules = [
                'title' => ['h1','text'],
                'seo_title' => ['title','text'],
                'keywords' => ['meta[name=keywords]','content'],
                'description' => ['meta[name=description]','content'],
                'content' => [$content_rule,'html','-a -ul -li -.group-post-list'],
                'thumb' => [$thumb_rule,'src']
            ];
        }

        $query =  $ql->rules($rules)->queryData();

这些写对于每个页面都要定好规则,比较麻烦有没有一种组件可以任意网址自动识别采集正文内容的,
先看效果
在这里插入图片描述
只需要输入一个文章的网站,自动识别正文内容并采集
主要用的一个插件readability,git地址: https://github.com/andreskrey/readability.php
代码:

$html = file_get_contents($url);
$readability = new Readability(new Configuration());
$readability->parse($html);


$data['title'] = $readability->getTitle();
$data['seo_title'] = $readability->getTitle();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天天打码

打赏买瓶护发素吧!~~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值