欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Scrapy爬虫框架入门(上) - 慕课网爬虫

程序员文章站 2022-05-02 10:04:31
...
更多文章请关注公众号「我偶像龟叔

Scrapy 是一个为了爬取网站数据,提取结构性数据而编写的应用框架。可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

Scrapy爬虫框架入门(上) - 慕课网爬虫

五大组件:

  1. 引擎(Scrapy Engine):负责Spider、ItemPipeline、Downloader、Scheduler中间的通讯,信号、数据传递等。
  2. 调度器(Scheduler):调度器从引擎接受request并将他们入队,以便之后引擎请求他们时提供给引擎。
  3. 下载器(Downloader):负责下载引擎发送的Requests请求,并将Responses返还引擎转交Spiders。
  4. 爬虫(Spiders):对response分析并提取自定义数据item的地方。
  5. 管道(Item Pipeline):负责处理被spider提取出来的item。典型的处理有清理、 验证及持久化(例如存取到数据库中)。

1、准备

-项目分析
演示爬取页面中所有课程相关数据,并对应每个课程链接,回调请求该课程的视频链接。最后在以上基础中,进行分页批量爬取。
Scrapy爬虫框架入门(上) - 慕课网爬虫
-项目创建

# 框架安装 (镜像加速:-i https://pypi.tuna.tsinghua.edu.cn/simple some-package)
pip install scrapy

# 新建项目
scrapy startproject imooc_spider

-浏览器安装调试插件(xpath)
Scrapy爬虫框架入门(上) - 慕课网爬虫

-框架自带代码命令行(在IDE直接运行调试)


# cmd.py 在项目根目录创建
from scrapy import cmdline
cmdline.execute('scrapy crawl imooc'.split())

2、items.py文件

声明可用字段,保存爬取到的自定义数据。
Scrapy爬虫框架入门(上) - 慕课网爬虫

3、创建数据库与集合

Scrapy爬虫框架入门(上) - 慕课网爬虫

结果已请求成功的页面内容:
Scrapy爬虫框架入门(上) - 慕课网爬虫

4、处理、返回数据

页面提取到的数据
Scrapy爬虫框架入门(上) - 慕课网爬虫
上面可以看到只取到了4条参数,还有teacher_name、video_url_list需要请求课程链接后才能获得。这里我们用yield发送异步请求,并回调定义的方法。
Scrapy爬虫框架入门(上) - 慕课网爬虫
打印出全部数据:
Scrapy爬虫框架入门(上) - 慕课网爬虫

5、管道存储数据

怎么去存储数据呢?上面介绍管道(Item Pipeline)可以进行储存数据,那现在将数据存储到MongoDB中(不会可以查阅前面发布的文章)Python操作三大数据库 - MongoDB

在此之前需要修改配置:
Scrapy爬虫框架入门(上) - 慕课网爬虫
Scrapy爬虫框架入门(上) - 慕课网爬虫

6、批量操作

在当前页面获取页码,判断是否还有下一页,异步请求自身方法。

Scrapy爬虫框架入门(上) - 慕课网爬虫

源码公众号回复关键字「慕课网爬虫
相关标签: 龟谷爬虫 python