接触过Scrapy的人都知道,我们很多操作是需要借助命令行来执行的,比如创建项目,运行爬虫等。所以了解和掌握这些命令对于scrapy的学习是很有帮助的!

Scrapy 命令

首先,在scrapy命令中分为两种,一个就是全局命令和项目命令,什么意思呢?简单粗暴的说就是有些命令你可以在你电脑任何地方用,有些命令只能在你自己的项目里面用。

下面给大家先看看所有的命令:

Global commands(全局命令):

  • startproject
  • genspider
  • settings
  • runspider
  • shell
  • fetch
  • view
  • version

Project-only commands(项目命令):

  • crawl
  • check
  • list
  • edit
  • parse
  • bench

咱们一个一个来吧!

1. startproject

语法

scrapy startproject <project_name> [project_dir]

含义:创建一个新的Scrapy项目,名称为 project_name ,在project_dir目录下,如果目录不存在,那么目录就会变成项目名。

使用案例

$ scrapy startproject myproject

2. genspider

语法

scrapy genspider [-t template] <name> <domain>

含义:新建一个爬虫在当前文件夹或者在当前项目的爬虫文件夹中,如果是在一个项目当中,这个<name>参数将被当成爬虫的名字,然而<domain>将会被用来创建爬虫里面的 allowed_domains 和start_urls的属性值

使用案例

$ scrapy genspider -l       Available templates:四种模板  basic  crawl  csvfeed  xmlfeed
$ scrapy genspider example example.com创建example爬虫,并且默认使用basic模板
$ scrapy genspider -t crawl scrapyorg scrapy.org创建scrapyorg模板,并且使用crawl模板

3.crawl

语法

scrapy crawl <spider>

含义:运行爬虫

使用案例

$ scrapy crawl myspider

4. check

语法

scrapy check [-l] <spider>

含义:运行contract检查,检查你项目中的错误之处。

使用案例

$ scrapy check -lfirst_spider  * parse  * parse_itemsecond_spider  * parse  * parse_item
$ scrapy check[FAILED] first_spider:parse_item>>> 'RetailPricex' field is missing
[FAILED] first_spider:parse>>> Returned 92 requests, expected 0..4

5. list

语法:scrapy list

含义:列举出当前项目的爬虫

使用案例

$ scrapy listspider1spider2 

6. edit

语法:scrapy edit <spider>

含义:编辑爬虫代码,实际上就是vim模式,但是这种方式并不怎么好用,还不如用IDE去写爬虫。

使用案例

$ scrapy edit spider1

7. fetch

语法:scrapy fetch <url>

含义:使用Scrapy下载器下载指定的URL,并将获得的内容输出,通俗的来说就是打印出网站的HTML源码。

使用实例:

$ scrapy fetch --nolog http://www.example.com/some/page.html[ ... html content here ... ]

8.view

语法:scrapy view <url>

含义:在你的默认浏览器中打开给定的URL,并以Scrapy spider获取到的形式展现。 有些时候spider获取到的页面和普通用户看到的并不相同,一些动态加载的内容是看不到的, 因此该命令可以用来检查spider所获取到的页面。

使用案例

$ scrapy view http://www.example.com/some/page.html[ ... browser starts ... ]

9.shell

语法:scrapy shell [url]

含义:启动Scrapy Shell 来打开url,可以进行一些测试

使用案例

# 直接请求
scrapy shell http://www.baidu.com[ ... scrapy shell starts ... ]
# 加headers
scrapy shell
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36"}
req = scrapy.Request(url="https://bbs.pinggu.org/thread-7866291-1-1.html", headers=headers)
fetch(req)

10. parse

语法:scrapy parse <url> [options]

含义:输出格式化内容

Supported options:

  • --spider=SPIDER: 自动检测爬虫、强制使用特定爬虫

  • --a NAME=VALUE: 设置爬虫的参数(可重复)

  • --callback or -c: 用作解析响应的回调的爬虫方法

  • --meta or -m: 传递给回调请求的附加请求元。必须是有效的JSON字符串。示例:–meta='“foo”:“bar”

  • --pipelines: 通过管道处理项目

  • --rules or -r: 使用crawlspider规则发现用于解析响应的回调(即spider方法)

  • --noitems: 不显示items

  • --nolinks: 不显示提取的链接

  • --nocolour: 避免使用Pygments对输出着色

  • --depth or -d: 递归执行请求的深度级别(默认值:1)

  • --verbose or -v: 显示每个深度级别的信息

使用案例

$ scrapy parse http://www.example.com/ -c parse_item[ ... scrapy log lines crawling example.com spider ... ]
>>> STATUS DEPTH LEVEL 1 <<<# Scraped Items ------------------------------------------------------------[{'name': 'Example item', 'category': 'Furniture', 'length': '12 cm'}]
# Requests -----------------------------------------------------------------[]

11.settings

语法:scrapy settings [options]

含义:拿到Scrapy里面的设置属性

使用案例

$ scrapy settings --get BOT_NAMEscrapybot$ scrapy settings --get DOWNLOAD_DELAY0

12.runspider

语法:scrapy runspider <spider_file.py>

含义:运行一个含有爬虫的python文件,不需要是一个scrapy项目

使用案例

$ scrapy runspider myspider.py[ ... spider starts crawling ... ]

13.version

语法:scrapy version [-v]

含义:查看Scrapy版本

使用案例

scrapy versionScrapy 1.6.0

14.bench

语法:scrapy bench

含义:测试电脑当前爬取速度性能

详解Scrapy的命令行工具的更多相关文章

  1. Shodan搜索引擎详解及Python命令行调用

    shodan常用信息搜索命令 shodan配置命令 shodan init T1N3uP0Lyeq5w0wxxxxxxxxxxxxxxx //API设置 shodan信息收集 shodan myip ...

  2. Scrapy常用命令行工具

    查看所有命令 scrapy -h 查看帮助信息 scapy --help 查看版本信息 (venv)ql@ql:~$ scrapy version Scrapy 1.1.2 (venv)ql@ql:~ ...

  3. Scrapy命令行工具简介

    Windows 10家庭中文版,Python 3.6.4,virtualenv 16.0.0,Scrapy 1.5.0, 在最初使用Scrapy时,使用编辑器或IDE手动编写模块来创建爬虫(Spide ...

  4. Kubernetes 实践指南之Kubernetes 的命令行工具详解

    kubectl作为客户端CLI工具,可以让用户通过命令行的方式对Kubernetes集群进行管理.本节内容将对kubectl的子命令和用法进行详细描述. 一.kubectl 用法概述 kubectl语 ...

  5. 第九章 kubectl命令行工具使用详解

    1.管理k8s核心资源的三种基础方法 陈述式管理方法:主要依赖命令行CLI工具进行管理 声明式管理方法:主要依赖统一资源配置清单(manifest)进行管理 GUI式管理方法:主要依赖图形化操作界面( ...

  6. JMeterPluginCMD命令行工具使用详解

    MeterPluginCMD命令行工具生成png图片和csv统计文件 Jmeter是个纯java的开源的轻量级性能测试工具,功能强大.因为是轻量级的,与loadrunner相比,报告统计的相对较少.不 ...

  7. Wireshark命令行工具tshark详解(含例子)-01

    Wireshark命令行工具tshark使用小记 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把D ...

  8. Windows下SVN命令行工具使用详解

    根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...

  9. Python 命令行工具 argparse 模块使用详解

    先来介绍一把最基本的用法 import argparse parser = argparse.ArgumentParser() parser.parse_args() 在执行 parse_args() ...

随机推荐

  1. Centos 常用指令

    1.*.tar 用 tar  xvf 解压 2.*.gz 用 gzip  d或者gunzip 解压 3.*.tar.gz和*.tgz 用 tar xzf 解压 4.*.bz2 用 bzip2 d或者用 ...

  2. Redis - 2 - 聊聊Redis的RDB和AOF持久化 - 更新完毕

    1.RDB 1.1).RDB是什么? RDB,全称Redis Database RDB是Redis进行持久化的一种方式,当然:Redis默认的持久化方式也是RDB 1.2).Redis配置RDB 1. ...

  3. VUE3 之 生命周期函数

    1. 概述 老话说的好:天生我材必有用,千金散尽还复来. 言归正传,今天我们来聊一下 VUE 的生命周期函数. 所谓生命周期函数,就是在某一条件下被自动触发的函数. 2. VUE3 生命周期函数介绍 ...

  4. dart系列之:浏览器中的舞者,用dart发送HTTP请求

    目录 简介 发送GET请求 发送post请求 更加通用的操作 总结 简介 dart:html包为dart提供了构建浏览器客户端的一些必须的组件,之前我们提到了HTML和DOM的操作,除了这些之外,我们 ...

  5. Elasticsearch核心技术(四):索引原理分析

    本文探讨Elasticsearch的数据请求.路由和写入过程的原理,主要涉及ES的分布式存储架构.节点和副本的写入过程.近实时搜索的原因.持久化机制等. 4.1 ES存储架构 我们经常说,看一件事情千 ...

  6. [BUUCTF]PWN——bjdctf_2020_router

    bjdctf_2020_router 附件 步骤: 例行检查,64位程序,开启了NX保护 本地试运行一下程序,看看大概的情况 会让我们选择,选择4.root,没什么用,但是注意了,这边选1会执行pin ...

  7. 删除空行(嵌套)(Power Query 之 M 语言)

    数据源: "姓名""基数""个人比例""个人缴纳""公司比例""公司缴纳"&qu ...

  8. Python 的切片为什么不会索引越界?

    切片(slice)是 Python 中一种很有特色的特性,在正式开始之前,我们先来复习一下关于切片的知识吧. 切片主要用于序列对象中,按照索引区间截取出一段索引的内容. 切片的书写形式:[i : i+ ...

  9. CF424A Squats 题解

    Content 给定一个长度为 \(n\) 的仅由 x 和 X 组成的字符串,求使得字符串中 x 和 X 的数量相等需要修改的次数,并输出修改后的字符串. 数据范围:\(2\leqslant n\le ...

  10. 通过一道简单的例题了解Linux内核PWN

    写在前面 这篇文章目的在于简单介绍内核PWN题,揭开内核的神秘面纱.背后的知识点包含Linux驱动和内核源码,学习路线非常陡峭.也就是说,会一道Linux内核PWN需要非常多的铺垫知识,如果要学习可以 ...