QueryList 是什么
QueryList是一套用于内容采集的PHP工具,它使用更加现代化的开发思想,语法简洁、优雅,可扩展性强。相比传统的使用晦涩的正则表达式来做采集,QueryList使用了更加强大而优雅的CSS选择器来做采集,大大降低了PHP做采集的门槛,同时也让采集代码易读易维护,让你从此告别晦涩难懂且不易维护的正则表达式。
QueryList 提供的一整套内容采集解决方案
DOM内容选择:CSS选择器
HTTP客户端:GuzzleHTTP
内容过滤:CSS选择器
解决乱码:内置多套乱码解决方案
额外功能:丰富的扩展插件
项目结构(有需求的联系博主)
代码示例
<?php
/**
* @version 4.0.0
* @document https://www.querylist.cc/docs/guide/v4/http-client
* vender/tightenco/collect/src/Collect/Support/Arr.php 384行:
* [$value, $key] = static::explodePluckParameters($value, $key);
* 此用法php版本需>=7.1
* 若版本为7.0 则替换为
* list($value,$key) = static::explodePluckParameters($value, $key);
*/
require "vendor/autoload.php";
use QL\QueryList;
/**
* 基本用法实例
*/
class GraspTools
{
//抓取图片
public function graspImg($src)
{
$res = QueryList::get($src)->find('img')->attrs('src');
dump($res);
}
//获取百度结果
public function getBaiduSearch($wd)
{
$data = QueryList::get("http://www.baidu.com/s?wd={$wd}")
//设置采集规则
->rules([
'title' => array('h3','text'),
'link' => array('h3>a','href')
])
->query()
->getData();
dump( $data->all() );
}
}
( new GraspTools() )->graspImg('http://www.nipic.com');
( new GraspTools() )->getBaiduSearch('蔡徐坤');
原文地址:https://segmentfault.com/a/1190000021919435