当前位置: 首页 > news >正文

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();
http://www.lryc.cn/news/176637.html

相关文章:

  • 区块链实验室(27) - 区块链+物联网应用案例
  • NPU上PyTorch模型训练问题案例
  • 出现 conda虚拟环境默认放在C盘 解决方法
  • Ubuntu Postgresql开机自启动服务
  • COTS即Commercial Off-The-Shelf 翻译为“商用现成品或技术”或者“商用货架产品”
  • idea开发Springboot出租车管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目
  • Linux nohup
  • Linux 常见问题
  • 仕达利恩飞讯软件TPM设备管理项目正式启动,向数字化再迈一步
  • 【算法】分治法
  • Rabbit消息的可靠性
  • Java中的网络编程是什么?
  • Oracle 常用命令大全
  • Mysql 开启ssl连接
  • Java Stream流对List集合进行分页
  • Docker(二)、linux环境Docker的部署以及构建镜像
  • GEE错误——Image.select: Pattern ‘MDF‘ did not match any bands
  • 前端JavaScript入门到精通,javascript核心进阶ES6语法、API、js高级等基础知识和实战 —— JS基础(四)
  • mysql超级聚合with rollup
  • 浅谈电动汽车充电桩设计与应用研究
  • tensorflow Windows安装说明
  • 【Leetcode热题】打卡 day11——20(更新至11)
  • linux使用操作[3]
  • 梦想让生活得以忍受-寄语机器视觉工程师
  • linux 设置打开文件数
  • MySQL基础篇-约束
  • 系统工程知识体系(SEBoK)
  • Spring DI (Dependency Injection)
  • Spring Boot : ORM 框架 JPA 与连接池 Hikari
  • Wireshark抓包分析ICMP协议