QueryList 使用 jQuery 的方式来做采集,拥有丰富的插件。
下面来演示QueryList
使用Baidu 搜索引擎
插件轻松实现站内搜索。
使用 Composer 安装:
composer 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
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.