PHP使用QueryList轻松实现一个百度网盘资源搜索引擎

来源:互联网 发布:d3.js v4画力导向图 编辑:程序博客网 时间:2024/05/16 12:02

QueryList使用jQuery的方式来做采集,拥有丰富的插件。

下面来演示QueryList使用Baidu搜索引擎插件轻松实现站内搜索。

安装

使用Composer安装:

  • 安装QueryList
composer require jaeger/querylist

GitHub: https://github.com/jae-jae/QueryList

  • 安装Baidu搜索引擎插件
composer require jaeger/querylist-rule-baidu

GitHub: https://github.com/jae-jae/QueryList-PhantomJS

插件API

  • Baidu baidu($pageNumber = 10):获取百度搜索引擎

class Baidu:
- Baidu search($keyword):设置搜索关键词
- Baidu setHttpOpt(array $httpOpt = []):设置HTTP选项,查看: GuzzleHttp options
- int getCount():获取搜索结果总条数
- int getCountPage():获取搜索结果总页数
- Collection page(page=1,realURL = false):获取搜索结果

使用

  • 实现一个百度网盘资源搜索引擎:
<?phprequire 'vendor/autoload.php';use QL\QueryList;use QL\Ext\Baidu;$ql = QueryList::use(Baidu::class);// 搜索百度网盘网站,包含‘百度’关键词的资源$searcher = $ql->baidu()->search('site:pan.baidu.com 百度');// 获取第一页数据,并获取真实URL连接地址$data = $searcher->page(1,true);print_r($data->all());

抓取结果:

Array(    [0] => Array        (            [title] => 百度网盘_享你所想            [link] => http://pan.baidu.com/        )    [1] => Array        (            [title] => 百度网盘 客户端下载            [link] => https://pan.baidu.com/download        )    [2] => Array        (            [title] => 百度网盘-开放平台            [link] => https://pan.baidu.com/platform/read        )     // ....)
  • 更多用法
$baidu = $ql->baidu(15); // 设置每页搜索15条结果$searcher = $baidu->search('QueryList');$count = $searcher->getCount();  // 获取搜索结果总条数$data = $searcher->page(1);$data = $searcher->page(2);$searcher = $baidu->search('php');$countPage = $searcher->getCountPage(); // 获取搜索结果总页数for ($page = 1; $page <= $countPage; $page++){    $data = $searcher->page($page);}$data = $searcher->setHttpOpt([    // 设置http代理    'proxy' => 'http://222.141.11.17:8118',   // Set the timeout time in seconds    'timeout' => 30,])->page(1);

Google搜索引擎插件

当然除了Baidu搜索引擎插件,QueryList也有Google搜索引擎插件,也可以实现同样的功能。

文档: https://doc.querylist.cc/site/index/doc/43
GitHub: https://github.com/jae-jae/QueryList-Rule-Google

原创粉丝点击