Python爬虫
课程大纲:
一、网络爬虫
爬虫简介
爬虫的价值
爬虫的合法性问题
通用爬虫与聚焦爬虫
二、HTTP与HTTPS
HTTP原理
HTTP和HTTPS
HTTP请求过程
get和post请求
常用请求报头
响应
三、网页的组成与结构
HTML与HTML5
CSS&CSS3
Javascript
四、掌握Xpath
什么是XPath?
XPath 开发工具
XPath语法交互环境
五、requests的使用
requests的get请求
requests的post请求
编码格式
requests高级操作-文件上传
requests高级操作-获取cookie
requests高级操作-证书验证
案例:《抓取CoinDesk》
六、urllib的使用
urllib的基本使用
urllib的get请求
urllib的post请求
Handler处理器和自定义Opener
URLError与HTTPError
案例:《抓取网易公开课视频》
七、BeautifulSoup的使用
BeautifulSoup介绍
基本用法
节点选择器
方法选择器
CSS选择器
案例:《抓取allitebooks网站所有电子书》
八、正则表达式
什么是正则表达式
正则表达式匹配规则
re 模块的使用
match、search、sub、compile方法
group分组
案例:《时间格式化》
九、使用代理
代理种类:HTTP、HTTPS、SOCKS5
抓取免费代理
使用付费代理
urllib和requests使用代理
案例:《自建代理池》
十、数据存储
txt、json、csv文件存储
MySQL数据库的使用
NoSql是什么
MongoDB简介
MongoDB的使用
Redis数据库的使用
十一、Scrapy的简介
安装Scrapy
Scrapy架构
Scrapy的数据流
Scrapy Shell的使用
Spider类的使用
十二、Scrapy选择器
css选择器与Scrapy选择器对比
使用选择器
十三、快速创建Scrapy爬虫
新建项目
明确目标(编写items.py)
制作爬虫(spiders/xxspider.py)
存储内容(pipelines.py)
十四、下载器与爬虫中间件的使用
反爬虫机制与策略
突破反爬虫策略
设置下载中间件
DOWNLOADER_MIDDLEWARES 设置
十五、使用管道Pipelines
管道的介绍
管道的设置
管道的使用
案例:《抓取麦田租房信息》
十六、Selenium与PhantomJSbr的使用
Selenium与PhantomJS的介绍和安装
Selenium 库里的WebDriver
页面操作
鼠标动作链
填充表单
弹窗处理
页面切换
十七、Headless Chrome 与Headless FireFox
Headless Chrome 与 Headless FireFox的详细介绍
Headless Chrome 与 Headless FireFox对浏览器版本的支持
Headless模式运行selenium
案例:《抓取微信公众号》
十八、使用Splash
Splash介绍
Splash的安装
Splash与Scrapy结合
使用Splash执行Javascript
十九、 Ajax数据抓取
Ajax的工作原理
Ajax的分析方法
json数据的分析
提取json数据的有用信息
二十、Scrapy-Redis源码分析及实现
Scrapy 和 scrapy-redis的区别
分布式技术原理
connection、Dupefiler、PicklecompatPipelines、Queue、Scheduler源码分析
增量式抓取与布隆过滤器
案例:《分布式抓取麦田二手房信息》
二十一、Python实现模拟登陆
分析登录过程(豆瓣、果壳、京东等)
案例:《模拟登录微博》
二十二、cookies池使用
cookies池架构设计
cookies池架构实现
二十三、破解常见验证码
(OCR工具、打码工具)
使用tesserocr
点触验证码
geetest验证码
二十四、App数据抓取
使用fiddler、charles、wireshark、mitmproxy
案例:《抓取得到电子书信息》
Appium的使用
案例:《抓取拼多多商品信息》
二十五、抓包工具
使用fiddler、charles、wireshark、mitmproxy
抓程分析
案例:《抓取得到电子书信息》
二十六、Appium
Appium的使用
Appium与mitmproxy结合使用
案例:《抓取拼多多商品信息》
案例:《基于Scrapy框架的北京房产信息多平台抓取实现》
一、网络爬虫
爬虫简介
爬虫的价值
爬虫的合法性问题
通用爬虫与聚焦爬虫
二、HTTP与HTTPS
HTTP原理
HTTP和HTTPS
HTTP请求过程
get和post请求
常用请求报头
响应
三、网页的组成与结构
HTML与HTML5
CSS&CSS3
Javascript
四、掌握Xpath
什么是XPath?
XPath 开发工具
XPath语法交互环境
五、requests的使用
requests的get请求
requests的post请求
编码格式
requests高级操作-文件上传
requests高级操作-获取cookie
requests高级操作-证书验证
案例:《抓取CoinDesk》
六、urllib的使用
urllib的基本使用
urllib的get请求
urllib的post请求
Handler处理器和自定义Opener
URLError与HTTPError
案例:《抓取网易公开课视频》
七、BeautifulSoup的使用
BeautifulSoup介绍
基本用法
节点选择器
方法选择器
CSS选择器
案例:《抓取allitebooks网站所有电子书》
八、正则表达式
什么是正则表达式
正则表达式匹配规则
re 模块的使用
match、search、sub、compile方法
group分组
案例:《时间格式化》
九、使用代理
代理种类:HTTP、HTTPS、SOCKS5
抓取免费代理
使用付费代理
urllib和requests使用代理
案例:《自建代理池》
十、数据存储
txt、json、csv文件存储
MySQL数据库的使用
NoSql是什么
MongoDB简介
MongoDB的使用
Redis数据库的使用
十一、Scrapy的简介
安装Scrapy
Scrapy架构
Scrapy的数据流
Scrapy Shell的使用
Spider类的使用
十二、Scrapy选择器
css选择器与Scrapy选择器对比
使用选择器
十三、快速创建Scrapy爬虫
新建项目
明确目标(编写items.py)
制作爬虫(spiders/xxspider.py)
存储内容(pipelines.py)
十四、下载器与爬虫中间件的使用
反爬虫机制与策略
突破反爬虫策略
设置下载中间件
DOWNLOADER_MIDDLEWARES 设置
十五、使用管道Pipelines
管道的介绍
管道的设置
管道的使用
案例:《抓取麦田租房信息》
十六、Selenium与PhantomJSbr的使用
Selenium与PhantomJS的介绍和安装
Selenium 库里的WebDriver
页面操作
鼠标动作链
填充表单
弹窗处理
页面切换
十七、Headless Chrome 与Headless FireFox
Headless Chrome 与 Headless FireFox的详细介绍
Headless Chrome 与 Headless FireFox对浏览器版本的支持
Headless模式运行selenium
案例:《抓取微信公众号》
十八、使用Splash
Splash介绍
Splash的安装
Splash与Scrapy结合
使用Splash执行Javascript
十九、 Ajax数据抓取
Ajax的工作原理
Ajax的分析方法
json数据的分析
提取json数据的有用信息
二十、Scrapy-Redis源码分析及实现
Scrapy 和 scrapy-redis的区别
分布式技术原理
connection、Dupefiler、PicklecompatPipelines、Queue、Scheduler源码分析
增量式抓取与布隆过滤器
案例:《分布式抓取麦田二手房信息》
二十一、Python实现模拟登陆
分析登录过程(豆瓣、果壳、京东等)
案例:《模拟登录微博》
二十二、cookies池使用
cookies池架构设计
cookies池架构实现
二十三、破解常见验证码
(OCR工具、打码工具)
使用tesserocr
点触验证码
geetest验证码
二十四、App数据抓取
使用fiddler、charles、wireshark、mitmproxy
案例:《抓取得到电子书信息》
Appium的使用
案例:《抓取拼多多商品信息》
二十五、抓包工具
使用fiddler、charles、wireshark、mitmproxy
抓程分析
案例:《抓取得到电子书信息》
二十六、Appium
Appium的使用
Appium与mitmproxy结合使用
案例:《抓取拼多多商品信息》
案例:《基于Scrapy框架的北京房产信息多平台抓取实现》