将query存进数组 php,thinkphp下通过QueryList获取网站指定数据并封装成数组,存入数据库...
1.安裝QueryList插件到自己的項目中,一般在vendor文件夾中
[geandeiMac:Html gean$ cd /Volumes/程序開發/www/Html/myapp/
[geandeiMac:Html myapp gean$ composer require jaeger/querylist
執行上面的代碼會自動安裝插件
2.獲取指定網站某div下的數據(以fx168為例獲取新聞列表以及每篇文章的content)
namespace app\controller;
use app\BaseController;
use QL\QueryList;
class Demo extends BaseController
{
public function index()
{
$result = [
'status' => 1,
'message' => 'ok',
'code' => 200
];
return json($result);
}
//通過QueryList插件采集新聞內容
public function GetHtmlCode()
{
$url = 'https://news.fx168.com/top/';
$rules = [
// 采集文章鏈接
'href' => ['.yy_div1>a', 'href'],
// 采集文章標題
'title' => ['.yy_pp2>a', 'text'],
// 采集圖片
'img' => ['.yy_div1>a>img', 'slt'],
//采集摘要
'tags' => ['.yy_div2 .yy_pp3>a', 'text'],
//采集時間
'date' => ['.yy_span2', 'text']
];
$range = '#yy_sticker ul li';
$rt = QueryList::get($url)->rules($rules)->range($range)->query()->getData();
$data = $rt->all();
dump($rt);
foreach($data as $k=>$v){
$data[$k] = array_filter($v);
}
$data = array_filter($data);
foreach ($data as $key => $k){
$content_url = $data[$key]['href'];
$c_rules = [
//采集文章內容
'content' => ['.TRS_Editor', 'html'],
];
$c_range = '.text';
$c_rt = QueryList::get($content_url)->rules($c_rules)->range($c_range)->query()->getData();
$content = $c_rt->all();
$data[$key]['content_url'] = $content_url;
$data[$key]['content'] = $content;
}
dump($data);
}
}
總結
以上是生活随笔為你收集整理的将query存进数组 php,thinkphp下通过QueryList获取网站指定数据并封装成数组,存入数据库...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php数组中插入数值,php中如何在数组
- 下一篇: php 处理raw数据,php以raw格