Scrapy爬虫框架入门(上) - 慕课网爬虫
程序员文章站
2022-05-02 10:04:31
...
更多文章请关注公众号「我偶像龟叔」
Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。
五大组件:
- 引擎(Scrapy Engine):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
- 调度器(Scheduler):调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。
- 下载器(Downloader):负责下载引擎发送的Requests请求,并将Responses返还引擎转交Spiders。
- 爬虫(Spiders):对response分析并提取自定义数据item的地方。
- 管道(Item Pipeline):负责处理被spider提取出来的item。典型的处理有清理、 验证及持久化(例如存取到数据库中)。
1、准备
-项目分析
演示爬取页面中所有课程相关数据,并对应每个课程链接,回调请求该课程的视频链接。最后在以上基础中,进行分页批量爬取。
-项目创建
# 框架安装 (镜像加速:-i https://pypi.tuna.tsinghua.edu.cn/simple some-package)
pip install scrapy
# 新建项目
scrapy startproject imooc_spider
-浏览器安装调试插件(xpath)
-框架自带代码命令行(在IDE直接运行调试)
# cmd.py 在项目根目录创建
from scrapy import cmdline
cmdline.execute('scrapy crawl imooc'.split())
2、items.py文件
声明可用字段,保存爬取到的自定义数据。
3、创建数据库与集合
结果已请求成功的页面内容:
4、处理、返回数据
页面提取到的数据
上面可以看到只取到了4条参数,还有teacher_name、video_url_list需要请求课程链接后才能获得。这里我们用yield发送异步请求,并回调定义的方法。
打印出全部数据:
5、管道存储数据
怎么去存储数据呢?上面介绍管道(Item Pipeline)可以进行储存数据,那现在将数据存储到MongoDB中(不会可以查阅前面发布的文章)Python操作三大数据库 - MongoDB
在此之前需要修改配置:
6、批量操作
在当前页面获取页码,判断是否还有下一页,异步请求自身方法。
源码公众号回复关键字「慕课网爬虫」
上一篇: Java——斐波那契数列不死神兔问题(利用BigInteger完成)
下一篇: 不死神兔
推荐阅读
-
Python爬虫框架Scrapy基本用法入门教程
-
Python爬虫入门教程 36-100 酷安网全站应用爬虫 scrapy
-
python爬虫入门(六) Scrapy框架之原理介绍
-
Python爬虫入门教程 37-100 云沃客项目外包网数据爬虫 scrapy
-
java网络爬虫----------简单抓取慕课网首页数据
-
Python抓取框架Scrapy爬虫入门:页面提取
-
小说免费看!python爬虫框架scrapy 爬取纵横网
-
荐 一、scrapy爬虫框架——概念作用和工作流程 & scrapy的入门使用
-
Python爬虫框架Scrapy基本用法入门教程
-
Python爬虫入门教程 36-100 酷安网全站应用爬虫 scrapy