
QueryList 使用 jQuery 的方式来做采集,拥有丰富的插件。
下面来演示QueryList使用Baidu 搜索引擎插件轻松实现站内搜索。
使用 Composer 安装:
compose require jaeger/querylist composer require jaeger/querylist-rule-baidu class Baidu:
<?php require '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); 当然除了 Baidu 搜索引擎插件,QueryList 也有 Google 搜索引擎插件,也可以实现同样的功能。
文档: https://doc.querylist.cc/site/index/doc/43 GitHub: https://github.com/jae-jae/QueryList-Rule-Google
1 chnyang 2017-10-07 11:33:52 +08:00 via Android 支持支持。 |
2 vovov 2017-10-07 11:36:35 +08:00 via Android 很好的插件,支持下! |
3 koodai 2017-10-07 21:55:13 +08:00 确实挺好的,不过我一直比较抵触使用 composer,平时维护一个单脚本足够方便,引入包管理器反而把问题复杂化了。 “ 如果你的 PHP 版本还停留在 PHP5,或者不会使用 Composer,你可以选择使用 QueryList3 ” QL 和 QL3 有区别吗? |
4 GGGG430 2017-10-08 17:11:25 +08:00 |
6 Jaeger OP @GGGG430 #4 可以理解为 QueryList 是 Gotte 的超集! QueryList 除了拥有与 Gotte 类似的 DOM 操作能力和内置强大 GuzzleHttp,还有: 1.拥有比 Goutte 更全的选择器,如:伪选择器`:eq(0)` 2.拥有通用的列表采集方案 3.拥有乱码解决能力 4.拥有内容过滤功能 5.可扩展,拥有丰富的插件 6.API 简洁易用 目前已有的插件如:多线程采集插件、抓取动态 Javascript 渲染页面的 PhantomJS 插件等 |
8 YMB 2017-10-09 09:30:12 +08:00 mark |
9 moke 2017-10-09 09:36:19 +08:00 百度都不支持盘内搜索, |