课程描述
本课程主要针对有一定python编程经验的研发人员,讲解python编写网络爬虫的相关知识,主要内容有爬虫的本质剖析,从页面中爬取数据的三种方法,如何缓存抓取数据以及提取数据,并行爬虫,如何抓取动态页面内容;与表单的交互;处理页面中的验证码;使用Scarpy编写爬虫;网站爬虫封禁的突破策略;抓取到的数据可视化分析;
本课程内容丰富,讲解由浅入深,并始终以一线开发经验贯穿始终。通过本课程的学习,可使得学员对Python爬虫开发有一个很好的掌握和了解。
课程内容:
1、网络爬虫技术入门
“爬虫”的概念和本质
网络爬虫的实用价值
网络爬虫的法律约束
为什么选择Python做爬虫开发语言
Python的包管理工具-pip
编写一个网络爬虫
ro******xt介绍
爬虫一:网页下载
【案例】网站地图爬虫
【案例】遍历Id爬虫
【案例】链接爬虫
2、网页内容(数据)的抓取
网页的分析
FireBug Lite等工具
爬虫技术三种网页内容抓取方式
正则表达式
Beautiful Soup
Lxml:CSS选择器抓取
【讨论】三种抓取方式的优劣对比
【案例】为一个爬虫增加抓取功能
3、数据库缓存爬虫下载缓存
爬虫添加下载缓存的必要性
为链接爬虫添加缓存支持
缓存文件
文件系统限制
文件缓存实现(包含异常处理)
文件缓存测试的执行
使用zlib压缩缓存
清理过期文件缓存数据
文件缓存缓存缺陷
【案例】文件缓存实现
爬虫开发缓存选择NoSQL的理由
典型的NoSQL-MongoDB技术概述
MongoDB缓存实现
MongoDB数据压缩
MongoDB缓存测试
【案例】MongoDB缓存实现
4、100万个网页以上规模的网站数据抓取-并行爬虫
常规串行爬虫的特性
爬虫线程和进程的工作原理
多线程爬虫
多进程爬虫
性能分析
【案例】多线程爬虫
【案例】多进程爬虫
5、JavaScript动态页面的爬虫技术
动态页面示例
对动态网页执行逆向工程
分析页面加载数据的过程
python的Ajax调用
边界优化
【案例】动态网页的逆向
使用渲染引擎处理动态页面
渲染引擎处理原理
包含WebKit的Python库:PyQt
包含WebKit的Python库:PySide
使用WebKit编程执行动态的JavaScript
使用WebKit与网站交互-自定义渲染规则
浏览器自动化API接口提供者-Selenium
【案例】PySide执行动态的JavaScript
【案例】Selenium运行动态JavaScript
6、表单交互
登陆表单
GET/POST
URLencode/URLdecode
header & cookie
如何突破使用cookie阻挡的网站
网络机器人实现(网站内容自动更新功能)
高级Mechanize模块实现自动化表单处理
【案例】表单登陆
7、CAPTCHA(登陆验证码)处理
注册账号的关键控制环节
加载验证码图像
常规验证码图像处理-OCR(光学字符识别)
Tesseract OCR引擎
阀值化
OCR优化
【案例】OCR验证码图像处理
非常规的复杂验证码图像处理-9KW
复杂验证码图像处理服务概述
9KW入门
集成注册功能
【案例】调用9KW服务进行验证码图像处理
8、网络爬虫框架Scrapy(快速编写spider爬虫)
Scrapy安装
Scrapy框架的开发与使用
Scrapy框架爬虫spider介绍
爬虫项目默认结构生成-startproject
爬取内容模型设定
spider爬虫创建
如何使用shell 命令抓取
spider爬虫的中断与恢复
【案例】使用Scrapy框架快速编写爬虫
基于Scrapy开发的可视化爬虫工具-Portia
virtualenv 环境下的-Portia安装过程
Portia的标注
优化Portia生成的爬虫
【案例】使用Portia生成可视化爬虫
使用Scrapely实现自动化抓取
9、爬虫封禁的突破
ro******xt剖析
user agent
referrer
爬虫封禁的突破技巧
【爬虫实战一】Google搜索引擎
【爬虫实战二】宝马官网-抓取信息
10、爬行数据整理和可视化数据分析
CSV显示
Matplotlib的图形化显示
iPython和pylad
图型的初级绘制
默认配置的详解
线条的控制
图片边界
记号
移动脊柱
图例添加
注释特殊点
图像子图坐标轴和记号
其他类型的图
散点图/条形图/等高线图
灰度图/饼状图/量场图
网格/多重网格
极轴图/3D图
JS可视化图表hig******s.js
曲线图
区域图
饼图
散点图
气泡图
动态图表
组合图表
3D图
测量图
热点图
树状图
【爬虫数据可视化显示】某商城商品销售价格信息
11、复习本课程所有的内容
总结 讨论和完整案例展