详解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() ...
随机推荐
- 培训班输出的大量学员,会对IT行业产生哪些影响?
先说下会有哪些影响呢? 1 可能也就是些大城市的,规模比较大的,口碑比较好的培训学校输出的码农才能入行,而且能做长久.一些线上的所谓培训机构,或者小城市的培训学校,输出的能入行的码农,其实规模很有 ...
- pipeline 共享库
目录 一.简介 二.共享库扩展 共享库使用 共享库结构 pipeline模板 一些小问题 三.共享库例子 使用公共变量 使用共享库的src方法 使用共享库的vars方法 四.插件实现pipeline ...
- MySQL数据库如何查看数据文件的存放位置
SHOW GLOBAL VARIABLES;
- Java值引用和对象引用区别Demo
转自:http://blog.csdn.net/gundsoul/article/details/4927404 以前就知道JAVA对象分对象引用和值引用,并且还知道8种基础数据类型,即引用时是值引用 ...
- 使用bochs调试汇编程序
使用bochs调试汇编程序 前面我们已经搭建好了bochs的环境,并且将我们的汇编程序写入了硬盘里面,现在我们来看看如何通过bochs来调试我们的程序. 前文:https://www.cnblogs. ...
- android 基于dex的插件化开发
安卓里边可以用DexClassLoader实现动态加载dex文件,通过访问dex文件访问dex中封装的方法,如果dex文件本身还调用了native方法,也就间接实现了runtime调用native方法 ...
- 教会你彻底解决android studio c/c++ jni代码无法跳转
时不时总会遇到原来c c++ jni代码跳转很欢乐,突然也不知道咋滴了build也能build成功,运行也能正常运行,就是代码不能跳转了,首先来科普下一些背景知识. 如果让代码跳转起来,大概需要做哪些 ...
- 小迪安全 Web安全 基础入门 - 第一天 - 操作系统&名词&文件下载&反弹SHELL&防火墙绕过
一.专业名词 1.POC:(Proof of Concept),即概念验证.漏洞报告中的POC是一段说明或一个攻击的样例使读者能够确认这个漏洞是真实存在的. 2.EXP:exploit,即漏洞利用.对 ...
- log4j添加日志一定记住在工程的web.xml文件下加一些内容
log4j添加日志一定记住在工程的web.xml文件下加如下内容:
- 系统分析师教程(张友生)高清pdf下载
最近准备考系统分析师,故找了一本张又生编著的<系统分析师教程>的电子书,本来想买本书,可惜有点小贵,舍不得,故寻找电子版下载,花了不少时间才找到,现在分享给大家. http://item. ...