初识爬虫框架 Scrapy

Posted Python知识圈

tags:

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

第一时间关注 Python 技术干货!

“   阅读文本大概需要 3.1 分钟

今天带大家了解下 Scrapy 框架,先解答三个问题:什么是 Scrapy 框架呢?它有什么作用呢?为什么需要使用它?

Scrapy 是 Python 开发的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取 web 站点并从页面中提取结构化的数据。

Scrapy 用途广泛,可以用于数据挖掘、监测和自动化测试。

为什么需要使用它?Scrapy 是一个写好的框架,不用重复造轮子,scapy 底层是异步框架 twisted ,吞吐量高,并发是最大优势。

Scrapy 安装

我电脑上同时装了 py2 和 py3,在 py3 环境里安装 Scrapy,使用以下命令。

python3 -m pip install Scrapy

如果你的电脑只安装了一个 python 版本,直接使用 pip install xxx 即可。

如果上面方法安装失败的话就分下面两步骤安装:

1 首先安装 Twisted ,使用以下命令

python3 -m pip install Twisted

命令安装报错的话就去对应网站选择对应版本下载 whl,我的 python3.6,系统是 64 位,所以我下载的是 Twisted‑18.7.0‑cp36‑cp36m‑win_amd64.whl。下载后使用 pip 命令安装 whl 文件。

2 安装 scrapy 框架

python3 -m pip install scrapy

创建爬虫项目

创建储存 scrapy 文件夹 scrapypy3,cmd 进入到路径,用 scrapy startproject 命令新建项目。(温馨提示:代码显示不全的话向右轻轻滑动即可查看全部代码

F:\>cd F:\scrapypy3

F:\scrapypy3>scrapy startproject pjt1
New Scrapy project 'pjt1', using template directory 'e:\\py3\\lib\\site-packages\\scrapy\\templates\\project', created in:
    F:\scrapypy3\pjt1

You can start your first spider with:
    cd pjt1
    scrapy genspider example example.com

F:\scrapypy3>

Scrapy 项目目录结构

新建的爬虫项目文件有以下部分组成,将整个文件在编辑器 Pycharm 中打开看得很明显,文件后面我做了中文解释。

 pjt1/
    scrapy.cfg            # 爬虫项目的配置文件

    pjt1/                 # python 爬虫项目核心代码 
        __init__.py       # 爬虫项目初始化文件

        items.py          # 爬虫项目的数据容器文件,定义获取的数据

        middlewares.py    # 爬虫项目的中间件文件

        pipelines.py      # 爬虫项目的管道文件,主要用来对items里面定义的数据进行进一步的加工与处理

        settings.py       # 爬虫项目设置文件

        spiders/          # 爬虫项目中爬虫部分相关的文件
            __init__.py   # 爬虫项目中爬虫部分的初始化文件

创建项目参数

刚才用 scrapy startproject 创建了爬虫项目,创建的时候我们也可以加入一些参数,具体有哪些参数呢?我们可以在命令行通过 scrapy startproject -h查看,以下常见的命令给出了相应的中文注释。温馨提示:代码显示不全的话向右轻轻滑动即可查看全部代码

F:\scrapypy3>scrapy startproject -h
Usage
=====
  scrapy startproject <project_name> [project_dir]

Create new project

Options
=======
--help, -h              show this help message and exit

Global Options
--------------
--logfile=FILE          log fileif omitted stderr will be used  # 指定日志文件
--loglevel=LEVEL, -L LEVEL 
                        log level (default: DEBUG)  # 日志等级,默认 DEBUG 等级
                        --nolog                 disable logging completely  # 不显示日志信息
--profile=FILE          write python cProfile stats to FILE
--pidfile=FILE          write process ID to FILE
--set=NAME=VALUE, -s NAME=VALUE
                        set/override setting (may be repeated)
--pdb                   enable pdb on failure

常用工具命令

Scrapy 中,工具命令分为两种,一种为全局命令,一种为项目命令。

全局命令

在不进入Scrapy 爬虫项目所在目录的情况下,运行 scrapy -h,在commands下会出现所有的全局命令。

F:\scrapypy3>scrapy -h
Scrapy 1.5.1 - no active project

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test   # bench命令比较特殊,实为项目命令。
  fetch         Fetch a URL using the Scrapy downloader   # 通过“scrapy  fetch 网址” 用来显示爬虫爬取的过程。
  genspider     Generate new spider using pre-defined templates 
  runspider     Run a self-contained spider (without creating a project) # 实现不依托Scrapy的爬虫项目,直接运行一个爬虫文件。
  settings      Get settings values   # 通过settings命令查看Scrapy对应的配置信息。
  shell         Interactive scraping console # 通过shell命令可以启动Scrapy的交互终端
  startproject  Create new project   # 创建新的爬虫项目
  version       Print Scrapy version   # 显示Scrapy的版本相关信息
  view          Open URL in browser, as seen by Scrapy   # 实现下载某个网页并用浏览器查看的功能。

  [ more ]      More commands available when run from project directory

Use "scrapy <command> -h" to see more info about a command

项目命令

首先进入一个已经创建的 Scrapy 爬虫项目,运行 scrapy -h 显示项目中可用命令。在展示出来的命令中,包括了上面讲到的全局命令。全局命令既可以在非 Scrapy 爬虫项目文件夹中使用,同时也可以在 Scrapy 爬虫项目文件夹中使用,而 Scrapy 项目命令一般只能在 Scrapy 爬虫项目文件夹中使用。去掉全局命令,剩下的就是Scrapy项目命令。

所以,Scrapy 的项目命令主要有:bench、check、crawl、edit、genspider、list、parse。

F:\scrapypy3>cd pjt1

F:\scrapypy3\pjt1>scrapy -h
Scrapy 1.5.1 - project: pjt1

Usage:
  scrapy <command> [options] [args]

Available commands:
  bench         Run quick benchmark test   # 可以测试本地硬件的性能
  check         Check spider contracts   # 使用check命令,可以实现对某个爬虫文件进行合同(contract)检查。
  crawl         Run a spider   # 通过crawl命令来启动某个爬虫,启动格式是“scrapy crawl爬虫名”。
  edit          Edit spider   # 通过Scrapy中的edit命令,我们可以直接打开对应编辑器对爬虫文件进行编辑
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates   # 使用genspider命令来创建Scrapy爬虫文件,这是一种快速创建爬虫文件的方式
  list          List available spiders   # 列出当前可使用的爬虫文件。
  parse         Parse URL (using its spider) and print the results # 实现获取指定的URL网址,并使用对应的爬虫文件进行处理和分析。
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  shell         Interactive scraping console
  startproject  Create new project
  version       Print Scrapy version
  view          Open URL in browser, as seen by Scrapy

Use "scrapy <command> -h" to see more info about a command

这篇文章给大家讲了下 Scrapy 框架的安装和常用的命令,这只是初步了解,之后会在实战中使用,项目实战才是我们的最终目的。

此文章对你有点帮忙的话希望大家能多给点支持,关注、点赞、转发都是对我的一种支持,有什么问题欢迎在后台联系我,也可以在后台加入技术交流群,群里有大神,可以一起交流学习。

推荐阅读





brucepk

1.Python 技术分享

2.Python 爬虫分享

3.资料、工具共享

以上是关于初识爬虫框架 Scrapy的主要内容,如果未能解决你的问题,请参考以下文章

Python | 初识爬虫框架Scrapy

爬虫(十四):Scrapy框架 初识Scrapy第一个案例

python爬虫框架scrapy初识

初识爬虫框架 Scrapy

Python | 边学边敲边记第四次:初识爬虫框架Scrapy

python应用:爬虫框架Scrapy系统学习第三篇——初识scrapy