标签:pos inf div style code ati 下载 bst 通过
一、安装
通过Composer安装:
composer require jaeger/querylist
官方参考文档:https://querylist.cc/docs/guide/v3/installation
二、本次主要运用下载到本地的querylist包来进行诠释
1.将querylist包解压到本地,放在本地框架的pubilc文件夹下(phpQuery.php Querylist.php 两个主要文件)
2.创建控制器,并在控制器中引入querylist的命名空间
3.控制器代码
public function index()
{
//引入采集文件
require "QueryList/QueryList.php";
require "QueryList/phpQuery.php";
//设置采集的地址
$url="https://www.17k.com/";
//设置采集规则
$rules = array(
//采集id为one这个元素里面的纯文本内容
‘title‘ => array(‘dd>h3>a‘,‘text‘),
//采集class为two下面的超链接的链接
‘content‘ => array(‘dd>.info>a‘,‘text‘),
//采集class为two下面的第二张图片的链接
‘img‘ => array(‘dd>a>img‘,‘src‘),
//采集span标签中的HTML内容
‘anthor‘ => array(‘dd>.author>a‘,‘text‘)
);
//采集数据
$data=@ QueryList::Query($url,$rules)->data;
//未采集到数据处理
foreach ($data as $k=>$v){
$data[$k][‘title‘]=empty($v[‘title‘])?‘未采集到数据‘:$v[‘title‘];
$data[$k][‘content‘]=empty($v[‘content‘])?‘未采集到数据‘:$v[‘content‘];
$data[$k][‘img‘]=empty($v[‘img‘])?‘未采集到数据‘:$v[‘img‘];
$data[$k][‘anthor‘]=empty($v[‘anthor‘])?‘未采集到数据‘:$v[‘anthor‘];
}
//将线上图片保存到本地文件夹中
foreach ($data as $k=>$v){
$img=file_get_contents($v[‘img‘]);
$fileimg=‘uploads/‘.time().rand(1,999).substr($v[‘img‘],strrpos($v[‘img‘],"."));
file_put_contents($fileimg,$img);
$data[$k][‘img‘]=$fileimg;
}
//添加入库
model(‘Book‘)->insertAll($data);
$data=Book::paginate(5);
if ($data){
return view(‘lists‘,[‘data‘=>$data]);
}else{
return "<script>alert(‘添加失败‘)</script>";
}
4.剩下的就保存入库就可以了,tp框架中数组入库运用 insertAll laravel框架见上图
标签:pos inf div style code ati 下载 bst 通过
原文地址:https://www.cnblogs.com/cyxng/p/14204357.html