详解Scrapy的命令行工具
接触过Scrapy的人都知道,我们很多操作是需要借助命令行来执行的,比如创建项目,运行爬虫等。所以了解和掌握这些命令对于scrapy的学习是很有帮助的!
Scrapy 命令
首先,在scrapy命令中分为两种,一个就是全局命令和项目命令,什么意思呢?简单粗暴的说就是有些命令你可以在你电脑任何地方用,有些命令只能在你自己的项目里面用。
下面给大家先看看所有的命令:
Global commands(全局命令):
startprojectgenspider- 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: 设置爬虫的参数(可重复)--callbackor-c: 用作解析响应的回调的爬虫方法--metaor-m: 传递给回调请求的附加请求元。必须是有效的JSON字符串。示例:–meta='“foo”:“bar”--pipelines: 通过管道处理项目--rulesor-r: 使用crawlspider规则发现用于解析响应的回调(即spider方法)--noitems: 不显示items--nolinks: 不显示提取的链接--nocolour: 避免使用Pygments对输出着色--depthor-d: 递归执行请求的深度级别(默认值:1)--verboseor-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的命令行工具的更多相关文章
- Shodan搜索引擎详解及Python命令行调用
shodan常用信息搜索命令 shodan配置命令 shodan init T1N3uP0Lyeq5w0wxxxxxxxxxxxxxxx //API设置 shodan信息收集 shodan myip ...
- Scrapy常用命令行工具
查看所有命令 scrapy -h 查看帮助信息 scapy --help 查看版本信息 (venv)ql@ql:~$ scrapy version Scrapy 1.1.2 (venv)ql@ql:~ ...
- Scrapy命令行工具简介
Windows 10家庭中文版,Python 3.6.4,virtualenv 16.0.0,Scrapy 1.5.0, 在最初使用Scrapy时,使用编辑器或IDE手动编写模块来创建爬虫(Spide ...
- Kubernetes 实践指南之Kubernetes 的命令行工具详解
kubectl作为客户端CLI工具,可以让用户通过命令行的方式对Kubernetes集群进行管理.本节内容将对kubectl的子命令和用法进行详细描述. 一.kubectl 用法概述 kubectl语 ...
- 第九章 kubectl命令行工具使用详解
1.管理k8s核心资源的三种基础方法 陈述式管理方法:主要依赖命令行CLI工具进行管理 声明式管理方法:主要依赖统一资源配置清单(manifest)进行管理 GUI式管理方法:主要依赖图形化操作界面( ...
- JMeterPluginCMD命令行工具使用详解
MeterPluginCMD命令行工具生成png图片和csv统计文件 Jmeter是个纯java的开源的轻量级性能测试工具,功能强大.因为是轻量级的,与loadrunner相比,报告统计的相对较少.不 ...
- Wireshark命令行工具tshark详解(含例子)-01
Wireshark命令行工具tshark使用小记 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把D ...
- Windows下SVN命令行工具使用详解
根据我的记忆,似乎Windows 7下自自带一个svn命令行工具.如果你的机器没有,不必担心.你可以从http://subversion.tigris.org获 取subversion for win ...
- Python 命令行工具 argparse 模块使用详解
先来介绍一把最基本的用法 import argparse parser = argparse.ArgumentParser() parser.parse_args() 在执行 parse_args() ...
随机推荐
- 下载requests库
下载requests库 第一步:找到python的安装位置,可以从下面的图中找到 第二步:复制scripts文件夹的位置 第三步:win+r打开cmd cd 到scripts文件夹的位置 第四步:运行 ...
- [OpenGL ES 02]OpenGL ES渲染管线与着色器
[OpenGL ES 02]OpenGL ES渲染管线与着色器 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循"署名-非商业用途-保持一致"创 ...
- mobile app 与server通信的四种方式
Have you ever wondered how the information gets into the application installed in your mobile device ...
- Python测试框架pytest入门基础
Pytest简介 Pytest is a mature full-featured Python testing tool that helps you write better programs.T ...
- [BUUCTF]REVERSE——内涵的软件
内涵的软件 附件 例行检查,32位程序 32位ida载入,shift+f12检索程序里的字符串 看到一个很像flag的字符串,拿去尝试一下,成功 flag{49d3c93df25caad8123213 ...
- SpringBoot Redis 发布订阅模式 Pub/Sub
SpringBoot Redis 发布订阅模式 Pub/Sub 注意:redis的发布订阅模式不可以将消息进行持久化,订阅者发生网络断开.宕机等可能导致错过消息. Redis命令行下使用发布订阅 pu ...
- CF41C Email address 题解
Content 有一个字符串 \(s\),它满足以下要求: 只包含 ..@ 和小写字母. 不以 . 为开头或者结尾. 不以 @ 为开头或者结尾,并只能包含一个 @. 请将其进行如下操作,使得这个字符串 ...
- vim 默认配置
vim ~/.vimrc 然后输入常用的需要用的命令,然后保存,这个每次启动VIM都会自动配置.当然你也可以在VIM里面按":"之后输入如下命令,但是下次启动之后设置就会丢失了. ...
- awk 循环过滤EPC脚本
无处理中EPC过滤脚本 #!/bin/bash if [ "$#" -lt 3 -o "$#" -gt 4 ];then #if [ "$#" ...
- Nginxre quest_time 和upstream_response_time
nginx优化之request_time 和upstream_response_time差别 https://www.cnblogs.com/dongruiha/p/7007801.html http ...