$ql?=?QueryList::getInstance();
//綁定一個myHttp方法到QueryList對象
$ql->bind('myHttp',function?($url){
????$html?=?file_get_contents($url);
????$this->setHtml($html);
????return?$this;
});
//然后就可以通過注冊的名字來調用
$data?=?$ql->myHttp('https://toutiao.io')->find('h3?a')->texts();
print_r($data->all());
或者把實現體封裝到class,然后這樣綁定:
$ql->bind('myHttp',function?($url){
????return?new?MyHttp($this,$url);
});
插件使用
使用CURL多線程插件,多線程采集排行榜:
$ql?=?QueryList::use(CurlMulti::class);
$ql->curlMulti([
????'https://github.com/trending/php',
????'https://github.com/trending/go',
????//.....more?urls
])
?//?每個任務成功完成調用此回調
?->success(function?(QueryList?$ql,CurlMulti?$curl,$r){
????echo?"Current?url:{$r['info']['url']}?\r\n";
????$data?=?$ql->find('h3?a')->texts();
????print_r($data->all());
})
?//?每個任務失敗回調
->error(function?($errorInfo,CurlMulti?$curl){
????echo?"Current?url:{$errorInfo['info']['url']}?\r\n";
????print_r($errorInfo['error']);
})
->start([
????//?最大并發數
????'maxThread'?=>?10,
????//?錯誤重試次數
????'maxTry'?=>?3,
]);
更多詳細請查看:
讓你更好的學習php爬蟲php數據庫系統開發完全手冊php數據庫系統開發完全手冊,小編推薦一套視頻教程【+實戰開發】希望以后你們能用得著。
〖課程介紹〗
實戰實錄,利用tp6開發PHP手冊統計項目。不依賴任何框架和架構,它可以單獨使用也可以引入到任意的PHP開發框架中去使用,如:、;你可以使用它來構建簡單的采集系統,也可以用它才構建高可用的分布式采集系統。它提供了豐富的基于CSS選擇器的頁面抽取API,完全模塊化的設計,擁有強大的可擴展性。
〖課程目錄〗
課時1 實戰實錄 tp6開發PHP手冊統計項目 - 介紹09:29
課時2【實戰實錄】PHP手冊統計-項目分析09:45
課時3【實戰實錄】PHP手冊統計用采集08:56
課時4 PHP手冊統計獲取到了一個文件的所屬上級04:22
課時5 PHP手冊統計建立表對接15040個頁面10:01
課時6 PHP手冊統計完成15037個頁面名稱存入數據庫05:58
課時7 完成了除包含php字符的對應目錄的入庫12:03
課時8 初步實現和了解了php手冊各欄目的頁面數量12:20
課時9 v1.0版上線源碼可以通過查看通過安裝06:25
課時10 入門php的cli命令行模式 即使獲得進度13:14
課時11 正式進入v2.0版本 cli模式作為主要運行對象09:30
課時12 實現了一級目錄的數據量統計11:26
課時13 重寫了一個激動人心的采集規則22:26
課時14 針對目錄不一致問題 增加字段統計比對05:16
課時15 應用遞歸實現從文件獲取其完整目錄12:27
課時16 通過遞歸補齊沒有path的文件17:01
課時17 用遞歸排查完成總數不一致問題08:10
課時18 用遞歸完成了基本tree樹形分類14:49
課時19 完成前端tree樹形分類用zTree實現08:10
課時20 完成前端11個欄目的樹形分類11:41
課時21 第一版完可以預覽子目錄數量的目錄完成07:16
課時22 第一版完可以預覽子目錄數量的目錄完成07:16
課時23 完成第一套完整的統計帶統計分析的php手冊12:50
課時24 統計結果html上線gitee直接瀏覽07:26
課時25 PHP手冊統計項目 - 總結
〖獲取地址〗
以上是本文的全部內容,希望對大家的學習有幫助,也希望大家多多支持php自學中心,學習與交流少不了一個圈子,點擊加技術群: