# 寫代碼之前
***
首先我們確定項目目標,我們希望有一個聚合式的搜索引擎,當我們輸入關鍵字之后可以自行去百度,知乎,微博等爬行搜索結果回來。
確定爬行目標是百度,知乎,微博等,并且爬行目標可以方便的增減。我們采用策略模式來建立。
> 策略模式(Strategy Pattern):定義一系列算法,將每一個算法封裝起來,并讓它們可以相互替換。策略模式讓算法獨立于使用它的客戶而變化,也稱為政策模式(Policy)。
爬行的過程中是十分耗時的,為了不讓用戶過多的等待。所以我們使用異步操作來完成,異步操作我們將分成兩個部分。爬行結束后把爬行結果存入 Redis。如果爬行過的關鍵字重復搜索的話,不會再執行爬行任務,只會去 Redis 中獲取結果。
再使用 swoole 來進行 websocket 開發,通過 websocket 來獲取爬行結果。并且使用 swoole timer 定時器來定時更新爬行結果。
- 作者自序
- 本書約定
- 安裝 Yaf
- 框架配置
- 使用 Bootstrap
- 集成 Composer
- 配置 IDE 支持 Yaf 代碼提醒
- 多模塊配置
- 命名空間支持
- 錯誤調試
- 請求與響應
- 輸入變量
- 輸出 JSON
- Ajax 請求
- 數據庫操作
- PDO 操作數據庫
- 使用 Laravel-Eloquent ORM 操作數據庫
- 視圖模板
- 使用 Yaf 自帶模板引擎
- 使用 Twig 模板引擎
- 接口開發
- RESTful
- 網頁開發
- SESSION
- Cookie
- 命令行開發
- 爬蟲開發
- 寫代碼之前
- 建立爬行目標抽象類
- 實現具體爬行目標類
- 實現爬蟲工廠類
- 編寫異步操作方法
- 用 Redis 保存爬行結果
- WebSocket 實時獲取結果
- 定時器更新爬行結果
- 優化程序
- 框架實踐
- 引入類庫
- 多模塊繼承與引入
- Let's Encrypt 免費 https 證書申請
- 附錄A:常見 Bootstrap 操作
- 附錄B:Yaf 配置項