PHP 使用 QueryList 輕鬆實現一個百度網盤資源搜尋引擎

Jaeger發表於2017-10-07

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-Phant...

外掛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 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-...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章