你将学到的
  • Laravel 高级应用,了解 Laravel 开发大中型项目的架构思路
  • Redis,学会 Redis 的配置及使用,包括数据缓存,实现基础数据结构、加锁等操作
  • Docker、RabbitMQ,学会配置、使用这两种技术
  • 爬虫知识,学会爬虫中各个组件的开发和工作流程
  • 提升侧重于后端的综合能力,本项目的重心是实现后端每个模块的核心逻辑
  • PHP 面向对象综合应用,学习动态绑定和接口类的最佳应用场景
课程内容
  共18个章节

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

lab-classic 实验 2 通用爬虫架构设计

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

lab-classic 实验 3 创建爬虫项目

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

lab-classic 实验 4 管理控制台实现

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

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

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

lab-challenge 挑战 2 操作状态提示

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

lab-classic 实验 5 爬虫库核心模块Context

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

lab-classic 实验 6 爬虫库核心模块Client

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

lab-classic 实验 7 爬虫库核心模块Result

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

lab-classic 实验 8 爬虫核心模块Executor

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

lab-classic 实验 9 爬虫库核心模块UriMap

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

lab-classic 实验 10 爬虫核心模块Crawler

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

lab-challenge 挑战 3 实现 JsonCrawler 爬取 API

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

lab-classic 实验 11 爬虫核心模块Filter

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

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

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

lab-classic 实验 12 爬虫库核心模块Processor

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

lab-challenge 挑战 5 实现CssProcessor下载CSS文件

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

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

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

课程介绍

Laravel 实现多进程爬虫框架

课程介绍

本课程将实现一个多进程的通用爬虫,用户在管理界面添加网站地址,点击 Start 过后,后台启动进程对该地址进行爬取,并将页面中包含的 URI 放回到缓存池中等待下一步爬取,最终实现对整个站点数据的采集。

管理界面使用 Laravel 实现,后台通过 HttpClient、dom-crawler、RabbitMQ、Redis 等多种技术的配合,完成一个通用的,并发的,可扩展的爬虫架构。

通用的爬虫架构,提供丰富的扩展方式

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

具有一定的数据采集性能,能够在较短时间内采集全站数据

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

全栈式的项目开发,前所未有的知识广度

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

实验任务

  • 了解爬虫的架构设计
  • 实现界面的多语言支持
  • 实现操作状态的显示
  • 掌握爬虫库的各个核心模块
  • 实现 JsonCrawler 爬去 API
  • 实现 CssFilter 爬去 CSS 文件地址
  • 实现 CssProcessor 下载 CSS 文件
  • 使用 Docker-Compose 部署与启动项目

课程信息

  • 学习周期:课程有效期2个月,2个月后实验文档一直可以看,但无法进行在线实验。高级会员有效期内可一直学习,高级会员到期后课程失效(不能看文档)。
  • 课程价格:当前优惠价格 159 元 。
  • 企业团报:可获得更多支持服务,请点击购买咨询

效果演示

  • 架构设计

Project_gragh

  • 首页效果图

Home_Page

  • 站点爬取结果

Crawler_Result

适合人群

  • 已经具备 Laravel 基础开发能力想要进一步突破瓶颈,提高自身大中型项目经验的开发者

  • 不具备 Laravel 及配套基础知识,但是敢于挑战自己,对自己的学习能力有充分信心的开发者

  • 想要学习 PHP 数据采集技术,开发一个基于数据支撑的网站

涉及前驱知识:

  1. Laravel 基础

  2. RabbitMQ 消息队列

  3. Redis 基础教程

课程教师

摩卡 共发布过 5 门课程

查看老师的所有课程 >
实验楼楼+
实验楼会员