闲来无事,爬一爬现在学生的课件ppt资源,做一做数据分析,看看孩子们都在学一些什么。
一、开始分析下载的流程:
1、一级页面
2、二级页面
http://www.1ppt.com/kejian/5769.html
根据标题来看,这个还是一个汇总,要下载详细的ppt内容还要往下看。
往下翻看到了正主,这个就是我们所需要的ppt课件
3、三级页面
进入了单节课程的页面,往下翻可以看到下载地址。
二、开始考虑爬虫的编写:
- 我使用的是scrapy框架。
- 由于首先进入的是首页,所以我使用的是crawl spider编写rule规则来获取各个出版社资源的子页面url。
- 进入二级页面之后,还要获取所有课程的名称和三级页面url。
- 进入三级页面,获取到ppt下载链接。
- 改写为scrapy-redis爬虫。
开始编写爬虫:
1、创建爬虫项目:
# 打开anaconda prompt 切换环境,输入
scrapy startproject ppt
# 进入 ./ppt,输入
scrapy genspider -t crawl downloadppt 1ppt.com # 创建crawl spider
2、导入爬虫项目,我用的是Sublime Text
3、开始一级页面
发现二级页面的a标签都在 class='ikejian_col_nav'的dd标签中,并且二级页面的url是/kejian/\d+.html的样式。
基于分析开始写规则:
rules = (
Rule(LinkExtractor(allow=r'.+/\d+\.html', restrict_xpaths='//dd[@class="ikejian_col_nav"]'), callback='parse_detail', follow=False),
)
# restrict_xpaths:捕获该标签下的所有/\d+.html的url并发送请求
4、分析二级页面
首先获得二级页面的标题
其次获得下面三级页面的url和标题&#