课程简介:
这是一门培养专业爬虫工程师的课程。本课程以大数据业务需求为导向,旨在掌握分布式爬虫的原理、理解互联网技术和各类数据分析挖掘的应用技巧。
升级版的内容特色:
1. 围绕微博的抓取、存储、提取和文本分析来展开
2. 增强了计算机架构与分布式系统的设计,例如负载均衡和任务队列的大篇幅介绍
3. 增加了对于数据库性能及优化的关键方法和原理的介绍,例如深翻页、查询优化、索引优化,Redis 队列原理及优化等
4. 在第一期使用简单Socket实现消息队列的基础上,增加了对成熟分布式架构(ZooKeeper)、消息队列(RabbitMQ)等的介绍,便于学员根据系统复杂度的提高而升级
面向人群:
1. 想要成为爬虫工程师、数据工程师的学习者
2. 网站后台及分布式系统架构的开发者和学习者
3. 爬虫系统项目经理、技术经理和架构师
4. 希望搭建聚合类、数据挖掘类、图片视频库等网站的爱好者、从业者
5. 有网络爬虫需求的开发者
学习收益:
1. 掌握分布式爬虫的实现原理以及常用的使用场景,例如内容聚合、过程跟踪、比价、数据挖掘等
2. 掌握分布式系统架构设计
3. 掌握常用数据库的原理和使用、开发中需要注意的重点
4. 了解如Google、百度、今日头条等互联网公司的产品技术和解决方案
5. 了解从文本采集到存储、分析的全套流程,会涉及基础的机器学习、文本分类和搜索引擎的原理
6. 针对不同任务,能快速开发网络爬虫满足业务需求
课程大纲:
第一课 静态网页爬虫:爬虫的基础技术
HTML
CSS 选择器
JavaScript 介绍
lxml 及 XPath
Python 里的网络请求
高速位缓存设计:BloomFilter
第一个爬虫:蚂蜂窝的游记
第二课 登录及动态网页的抓取
表单
网站登录及Cookie
Headless 的浏览器:PhantomJS
浏览器的驱动:Selenium
动态网页数据获取
第三课 微博的抓取
微博网站分布及结构分析
通过动态页面来抓取
微博网络接口的逆向分析
Java 的反编译
加密库
源代码的接口分析
利用API来抓取微博
第四课 多线程与过进程的爬虫
1. 线程与进程
2. Python 的多线程约束
3. 多个线程同时抓取
4. 多个进程同时抓取
第五课 微博数据的存储:分布式数据库及应用
SQL 与 NoSQL
Hadoop 架构
HDFS
HBase
MongoDB
Redis
基于分布式数据库的分布式爬虫
第六课 多机并行的微博抓取:分布式系统设计
Socket 编程
Master 设计
Slave 设计
任务调度及通信协议
分布式集群部署的爬虫
第七课 分布式系统进阶:复杂的分布式机制
分布式应用协调服务:ZooKeeper
分布式消息队列管理:RabbitMQ/Kafka
服务发布及注册
灰度升级
第八课 微博数据查询:分布式数据库系统的优化及负载均衡
复制与分片
流量控制及均衡
分布式事物及锁
Redis 的核心技术介绍
MongoDB 的关键技术
MySQL 的查询过程介绍及优化要素
第九课 PageRank、网页动态重拍及应对反爬虫技术的手段
1. PageRank 计算模型及推导
2. 网页抓取顺序重排
3. 网站服务架构
4. 寻找与利用分布式服务器
5. 多IP技术与路由控制
第十课 验证码的处理,京东、淘宝的数据抓取及存储案例
1. 基于距离的图片比对
2. 基于 TesseractOcr 的数字识别
3. 其它验证码识别方案
4. 京东数据抓取
5. 淘宝数据抓取
第十一课 网页内容排重
SimHash
海明距离
海量数据的相似度计算
网页排重
语义哈希简介
第十二课 自动摘要及正文抽取
1. 距离与联合概率
2. 自动摘要
3. K-Means 算法
4. 基于Text/Tag 的正文计算
5. PyGoose 的开源系统
第十三课 网页分类与针对文本的机器学习应用
网页分类基础
分词与特征抽取
线性回归
SVM
Logistic Regession
网页分类
多分类器
词向量简介
相关资源