你将学到的
  • Laravel 的架构思路
  • Redis 的配置及使用
  • Docker、RabbitMQ 的配置和使用
  • 爬虫相关知识
  • 项目后端的核心逻辑
  • 动态绑定和接口类
课程内容
  共18个章节

知识点: 1.爬虫的概念 2.项目概述 3.功能列表 4.技术选型

实验 2 通用爬虫架构设计

知识点: 1.通用爬虫技术架构 2.爬虫库技术架构 3.管理界面扩展爬虫库 4.爬取站点执行流程

实验 3 创建爬虫项目

知识点: 1.Laravel框架安装 2.Composer简单使用 3.爬虫目录结构的简单搭建

实验 4 管理控制台实现

知识点: 1.使用Laravel开发web应用 2.模型 3.视图 4.控制器

挑战 1 管理界面多语言支持

知识点: 1.本地化配置 2.多语言支持

挑战 2 操作状态提示

知识点: 1.模板展示session数据 2.FlashedSessionData的使用

实验 5 爬虫库核心模块 Context

知识点: 1.Context模块简介 2.Context设计思路 3.代码文件创建 4.代码文件详解

实验 6 爬虫库核心模块 Client

知识点: 1.Client模块简介 2.Client设计思路 3.Client文件创建 4.Client模块相关代码详解

实验 7 爬虫库核心模块 Result

知识点: 1.Result模块简介 2.Result设计思路 3.Result文件创建 4.Result代码详解

实验 8 爬虫核心模块 Executor

知识点: 1.Executor模块简介 2.Executor设计思路 3.Executor文件创建 4.Executor代码详解

实验 9 爬虫库核心模块 UriMap

知识点: 1.UriMap模块简介 2.UriMap设计思路 3.UriMap文件创建 4.UriMap代码详解

实验 10 爬虫核心模块 Crawler

知识点: 1.Crawler模块简介 2.Crawler设计思路 3.Crawler文件创建 4.Crawler代码详解

挑战 3 实现 JsonCrawler 爬取 API

知识点: 1.HTTP请求及回复 2.JSON请求操作 3.phphttp 4.PHP爬虫架构

实验 11 爬虫核心模块 Filter

知识点: 1.Filter模块简介 2.Filter设计思路 3.Filter文件创建 4.Filter代码详解

挑战 4 实现 CssFilter 爬取 CSS 文件地址

知识点: 1.Symfonydomcrawler 2.HTML基本语法 3.PHP爬虫架构

实验 12 爬虫库核心模块 Processor

知识点: 1.Processor模块简介 2.Processor设计思路 3.Processor文件创建 4.Processor代码详解 5.UriExecutorProcessor

挑战 5 实现 CssProcessor 下载 CSS 文件

知识点: 1.PHP文件操作 2.HTTP请求 3.phphttp 4.PHP爬虫架构

实验 13 使用 Docker-Compose 部署与启动项目

知识点: 1.Docker 2.Dockerfile 3.DockerCompose 4.composer

课程介绍

本课程将实现一个多进程的通用爬虫,用户在管理界面添加网站地址,点击 Start 过后,后台启动进程对该地址进行爬取,并将页面中包含的 URI 放回到缓存池中,等待下一步爬取,最终实现对整个站点数据的采集。管理界面使用 Laravel 实现,后台通过 HttpClient、dom-crawler、RabbitMQ、Redis 等多种技术的配合,完成一个通用的,并发的,可扩展的爬虫架构。

爬虫的功能核心分为三大模块:Crawler、Filter、Processor 。 它们分别负责页面抓取,页面解析和数据储存。这三个模块各自采用公共的接口,其子类可以任意地扩充。比如继承 Filter 创建一个 CssFilter,然后在 CssFilter 中编写相应的逻辑,就可以扩充一个从页面中提取 CSS 的功能。

为了尽可能提高爬虫性能,消除运行过程中的性能瓶颈,我们将 Redis、Mysql 和文件系统配合使用,采用多进程的方式对 URI 和数据并行处理,同时对爬取流程采用加锁机制,确保不会出现重复采集和数据冗余。

开发过程中涉及了大量进阶知识,包括 PHP 扩展类库的使用,通用架构搭建,消息队列,Laravel 高级应用,Mysql,Redis 等,这些组件都扮演了极其重要的角色。我们会在课程中细致地、反复地给大家讲解这些模块的用法,包含从安装到应用的所有入门必需知识。

效果展示

  • 架构设计

Project_gragh

  • 首页效果图

Home_Page

  • 站点爬取结果

Crawler_Result

适合人群

  • 已经具备 Laravel 基础开发能力想要进一步突破瓶颈,提高自身大中型项目经验的开发者。
  • 不具备 Laravel 及配套基础知识,但是敢于挑战自己,对自己的学习能力有充分信心的开发者。
  • 想要学习 PHP 数据采集技术,开发一个基于数据支撑的网站。

先学课程

课程信息

  • 学习周期:课程有效期 2 个月,2 个月后无法进行在线实验,但可查看文档内容。高级会员有效期内可一直学习,到期后课程失效,且无法查看文档。部分云主机实验环境因成本较高,存在开启次数限制。关于课程退款等相关注意事项说明,请阅读 用户付费协议
  • 企业团报:企业购买,请点击 企业用户咨询
课程教师

Sny 共发布过 8 门课程

查看老师的所有课程 >
蓝桥楼+
蓝桥会员
会员
开通会员,即刻开始学习