发布网友 发布时间:2022-04-07 10:33
共2个回答
懂视网 时间:2022-04-07 14:54
QueryList使用jQuery的方式来做采集,拥有丰富的插件。下面来演示QueryList使用Baidu搜索引擎插件轻松实现站内搜索。
安装
使用Composer安装:
安装QueryList
composer require jaeger/querylist
GitHub: https://github.com/jae-jae/Qu...
安装Baidu搜索引擎插件
composer require jaeger/querylist-rule-baidu
GitHub: https://github.com/jae-jae/Qu...
插件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):获取搜索结果
使用
实现一个百度网盘资源搜索引擎:
<?php require 'vendor/autoload.php'; use QLQueryList; use QLExtBaidu; $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搜索引擎插件,也可以实现同样的功能。
GitHub: https://github.com/jae-jae/Qu...
更多PHP相关知识,请访问PHP中文网!
热心网友 时间:2022-04-07 12:02
QueryList是一个基于phpQuery的PHP通用列表采集类,得益于phpQuery,让使用QueryList几乎没有任何学习成本,只要会CSS3选择器就可以轻松使用QueryList了,它让PHP做采集像jQuery选择元素一样简单。