详解Scrapy的命令行工具
接触过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的命令行工具的更多相关文章
- 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() ...
随机推荐
- uWSGI和WSGI之间的关系
一.WSGI 协议 WSGI:是一种协议规范,起到规范参数的作用,就像告诉公路一样,规定超车靠右行,速度不低于90km/h,等.但这一切都是对双方进行沟通,比如,重庆到武汉这条高速路,这儿重庆和武汉就 ...
- Redis操作命令合集
目录 一.客户端命令 二.sql命令 一.客户端命令 #读取配置文件启动 redis-server redis.conf #关闭 Redis,Redis服务器将断开与客户端链接,产生持久化文件,平滑关 ...
- hbuilder打包app基本流程
声明:本文可能用到一些工具和第三方网站,都是为了达到目的而使用的工具,绝不含有广告成分 1.下载.最新的Hbuilder X貌似不能直接创建移动app了(自己不会用),建议旧版.可去腾某讯软件中心下载 ...
- 判断存在…Contains…(Power Query 之 M 语言)
表函数 判断记录在表中是否存在 = Table.Contains( 表, 记录, {"指定列1",-, "指定列n"}) = Table.ContainsAll ...
- Lookup函数(Excel函数集团)
此处文章均为本妖原创,供下载.学习.探讨! 文章下载源是Office365国内版1Driver,如有链接问题请联系我. 请勿用于商业!谢谢 下载地址:https://officecommunity-m ...
- AT3589 Similar Arrays 题解
Content 给定一个长度为 \(n\) 的序列 \(a\).定义两个序列 \(x,y\) 是相似的,当且仅当 \(\forall i\in[1,n],|x_i-y_i|\leqslant 1\). ...
- LuoguB2075 幂的末尾 题解
Content 求 \(a^b\) 的末三位. 数据范围:\(1\leqslant a\leqslant 100\),\(1\leqslant b\leqslant 10^4\). Solution ...
- Ribbon——负载均衡
一.什么是Ribbon Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起.Ribbon客户端组件提供一系列完善的配置项如连接超 ...
- netcore XmlDocument 使用Load和Save方法
string path ="C://xxx/file" XmlDocument xmlDoc = new XmlDocument(); #if NET462 xmlDoc.Load ...
- IPtables 之“四表五链”
目录 架构图 IP tables 简介 包过滤防火墙 Iptables如何过滤 "四表" "五链" Iptables流程 架构图 公司架构模式(酒店迎宾比喻) ...