Scrapy 教程

original icon
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.knowledgedict.com/tutorial/scrapy-directory-structure.html

Scrapy 目录结构


Scrapy 通过 scrapy startproject <project_name> 命令来在 project_name 文件夹下创建一个名为 project_name 的 Scrapy 项目。

默认的 Scrapy 项目结构

在开始对命令行工具以及子命令的探索前,首先了解一下 Scrapy 的项目的目录结构。

虽然可以被修改,但所有的 Scrapy 项目默认有类似于下边的文件结构:

scrapy.cfg
myproject/
    __init__.py
    items.py
    pipelines.py
    settings.py
    spiders/
        __init__.py
        spider1.py
        spider2.py
        ...

scrapy.cfg 存放的目录被认为是项目的根目录。该文件中包含 Python 模块名的字段,定义了项目的设置。

例如:

[settings]
default = myproject.settings

具体的各自文件分别是:

  1. scrapy.cfg

    项目的配置文件,现在可以先忽略;

  2. myproject

    该项目的 Python 模块,myproject 为项目名称;

  3. myproject/items.py

    项目中的 item 文件;

    Item 是保存爬取到的数据的容器;其使用方法和 Python 字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误;

    类似在 ORM 中做的一样,可以通过创建一个 scrapy.Item 类,并且定义类型为 scrapy.Field 的类属性来定义一个 Item;

  4. myproject/pipelines.py

    项目中的 pipelines 文件;

    Scrapy 提供了 pipeline 模块来执行保存数据的操作。在创建的 Scrapy 项目中自动创建了一个 pipeline.py 文件,同时创建了一个默认的 Pipeline 类。比如我们要把 item 提取的数据保存到 MySQL 数据库;

  5. myproject/settings.py

    项目的设置文件;

    settings.py 是 Scrapy 中比较重要的配置文件,里面可以设置的内容非常之多。比如我们在前面提到的在 pipelines.py 中编写了把数据保存到 MySQL 数据的 class,那么怎么样才能使得这个 class 执行呢?就可以在 settings 设置;

  6. myproject/spiders/

    放置spider代码的目录;

  7. myproject/middlewares.py

    中间件。

Django是一个使用Python编写的Web应用程序框架,它有一种标准的项目结构,以帮助组织和管理代码。py:Django项目的命令行工具 ...
Vue 项目通过 npm 及 vue 创建后,我们可以在 IDE(VSCode、IDEA、Eclipse、Atom 等) 中打开项目,下面详 ...
Scrapy 针对不同目的提供了多个命令。 ...
作为微信小程序的开发者,首先必须清晰地了解其目录结构,这里总结了一套还算好维护的目录结构跟大家分享。 ...
Scrapy 是用 Python 编写的,所以使用 Scrapy 之前,必须保证 Python 已经安装好。 ...