# 写代码之前
***
首先我们确定项目目标,我们希望有一个聚合式的搜索引擎,当我们输入关键字之后可以自行去百度,知乎,微博等爬行搜索结果回来。
确定爬行目标是百度,知乎,微博等,并且爬行目标可以方便的增减。我们采用策略模式来建立。
> 策略模式(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 配置项