码以致用01 - Scrapy 爬虫框架简介

Posted ArtxCode

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了码以致用01 - Scrapy 爬虫框架简介相关的知识,希望对你有一定的参考价值。

开了新坑,如题,不解释

Scrapy 是什么



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

Scrapy 的结构

Scrapy 的结构如下:

码以致用01 - Scrapy 爬虫框架简介via Architecture Overview - Scrapy 1.5.0

在 Scrapy 中数据流是这样的:

  1. 引擎从爬虫(Spider)获得初始抓取请求

  2. 引擎在 Scheduler 中安排好请求,获取下一个抓取请求

  3. Scheduler 返回下一个抓取请求

  4. 引擎通过 Downloader 的 Middlewares 发送请求到 Downloader

  5. 完成页面下载后,Downloader 生成请求并通过 Middlewares 发送给引擎的

  6. 引擎接收来自 Downloader 的响应,通过 Spider Middlewares 发送给 Spider 处理

  7. Spider 处理请求并返回爬取内容,向引擎提交下一个请求

  8. 引擎发送爬取内容到 Item Pipelines,然后发送处理请求到 Scheduler,获取下一个爬取请求

  9. 重复 1-8 步,直到没有新的请求

安装 Scrapy

新建 Python 虚拟环境

比如用 conda,也可以用 virtualenv (参考文后链接:virtualenv installation instructions)

conda create -n {env_name} {list of packages}

上面的命令中,env_name 是用来折腾爬虫的项目环境名称,list of package是要一起安装的包,如 scrapypandas

我新建了一个叫 pyp 的环境,打开这 Python 环境的命令是:

source activate pyp

如果你使用 zsh,可以在 zshrc 文件里面新建 alias,并 source ~/.zshrc 保存生效,下次就可以用别名快捷打开这个环境了。

安装 Scrapy

通过 pip 安装很方便

pip install Scrapy

新建 scrapy 项目

进入存放项目的目录,用命令新建一个爬虫项目:

scrapy startproject {name}

新建好以后,可以看到起名为 lyrics 的爬虫项目,生成了以下目录和文件:

├── lyrics
│   ├── __init__.py
│   ├── __pycache__
│   ├── items.py
│   ├── middlewares.py
│   ├── pipelines.py
│   ├── settings.py
│   └── spiders
│       ├── __init__.py
│       └── __pycache__
└── scrapy.cfg4 directories, 7 files

对照上面介绍的 Scrapy 引擎的结构,可以大概知道每个文件的作用。

下一篇我们尝试用 Scrapy 抓取一些简单的网页内容。

Ref

  • Scrapy 1.5 documentation - https://docs.scrapy.org/en/latest/index.html

  • Scrapy爬虫框架教程(一)— Scrapy入门 - https://zhuanlan.zhihu.com/p/24669128

  • virtualenv installation instructions - https://virtualenv.pypa.io/en/stable/installation/






以上是关于码以致用01 - Scrapy 爬虫框架简介的主要内容,如果未能解决你的问题,请参考以下文章

爬虫框架--scrapy简介

爬虫学习 10.scrapy框架简介和基础应用

爬虫 - Scrapy 框架简介与入门

爬虫之scrapy框架

python爬虫----scrapy框架简介和基础应用

09 Scrapy框架在爬虫中的使用