Scrapy命令行工具
来源:互联网 发布:打车软件大公司 编辑:程序博客网 时间:2024/06/16 07:33
Scrapy命令行工具
Scrapy是通过 scrapy 命令行工具进行控制的。 这里我们称之为 “Scrapy tool” 以用来和子命令进行区分。 对于子命令,我们称为 “command” 或者 “Scrapy commands”。
startproject
语法:scrapy startproject <project_name>
在 project_name
文件夹下创建一个名为 project_name
的Scrapy项目。
例子:
$ scrapy startproject dirbot0
genspider
语法: scrapy genspider [-t template] <name> <domain>
在当前项目中创建spider。
这仅仅是创建spider的一种快捷方法。该方法可以使用提前定义好的模板来生成spider。您也可以自己创建spider的源码文件。
例子:
$ scrapy genspider -lAvailable templates: basic crawl csvfeed xmlfeed$ scrapy genspider -d basicimport scrapyclass $classname(scrapy.Spider): name = "$name" allowed_domains = ["$domain"] start_urls = ( 'http://www.$domain/', ) def parse(self, response): pass$ scrapy genspider -t basic example example.comCreated spider 'example' using template 'basic' in module: dirbot0.spiders.example
以basic的形式建立example.py的爬虫,url是example.com
crawl
语法: scrapy crawl <spider>
例子:
2017-09-03 12:56:20 [scrapy.utils.log] INFO: Scrapy 1.3.3 started (bot: dirbot0)2017-09-03 12:56:20 [scrapy.utils.log] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'dirbot0.spiders', 'SPIDER_MODULES': ['dirbot0.spiders'], 'ROBOTSTXT_OBEY': True, 'BOT_NAME': 'dirbot0'}2017-09-03 12:56:20 [scrapy.middleware] INFO: Enabled extensions:['scrapy.extensions.logstats.LogStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.corestats.CoreStats']2017-09-03 12:56:21 [scrapy.middleware] INFO: Enabled downloader middlewares:['scrapy.downloadermiddlewares.robotstxt.RobotsTxtMiddleware', 'scrapy.downloadermiddlewares.httpauth.HttpAuthMiddleware', 'scrapy.downloadermiddlewares.downloadtimeout.DownloadTimeoutMiddleware', 'scrapy.downloadermiddlewares.defaultheaders.DefaultHeadersMiddleware', 'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware', 'scrapy.downloadermiddlewares.retry.RetryMiddleware', 'scrapy.downloadermiddlewares.redirect.MetaRefreshMiddleware', 'scrapy.downloadermiddlewares.httpcompression.HttpCompressionMiddleware', 'scrapy.downloadermiddlewares.redirect.RedirectMiddleware', 'scrapy.downloadermiddlewares.cookies.CookiesMiddleware', 'scrapy.downloadermiddlewares.stats.DownloaderStats']2017-09-03 12:56:21 [scrapy.middleware] INFO: Enabled spider middlewares:['scrapy.spidermiddlewares.httperror.HttpErrorMiddleware', 'scrapy.spidermiddlewares.offsite.OffsiteMiddleware', 'scrapy.spidermiddlewares.referer.RefererMiddleware', 'scrapy.spidermiddlewares.urllength.UrlLengthMiddleware', 'scrapy.spidermiddlewares.depth.DepthMiddleware']2017-09-03 12:56:21 [scrapy.middleware] INFO: Enabled item pipelines:[]2017-09-03 12:56:21 [scrapy.core.engine] INFO: Spider opened2017-09-03 12:56:21 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)2017-09-03 12:56:21 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:60232017-09-03 12:56:22 [scrapy.core.engine] DEBUG: Crawled (404) <GET http://example.com/robots.txt> (referer: None)2017-09-03 12:56:22 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://example.com/> (referer: None)2017-09-03 12:56:22 [scrapy.core.engine] INFO: Closing spider (finished)2017-09-03 12:56:22 [scrapy.statscollectors] INFO: Dumping Scrapy stats:{'downloader/request_bytes': 428, 'downloader/request_count': 2, 'downloader/request_method_count/GET': 2, 'downloader/response_bytes': 1852, 'downloader/response_count': 2, 'downloader/response_status_count/200': 1, 'downloader/response_status_count/404': 1, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2017, 9, 3, 4, 56, 22, 478000), 'log_count/DEBUG': 3, 'log_count/INFO': 7, 'response_received_count': 2, 'scheduler/dequeued': 1, 'scheduler/dequeued/memory': 1, 'scheduler/enqueued': 1, 'scheduler/enqueued/memory': 1, 'start_time': datetime.datetime(2017, 9, 3, 4, 56, 21, 586000)}2017-09-03 12:56:22 [scrapy.core.engine] INFO: Spider closed (finished)
check
语法: scrapy check [-l] <spider>
运行contract检查。
例子:
$ scrapy check -l
$ scrapy check----------------------------------------------------------------------Ran 0 contracts in 0.000sOK
list
语法: scrapy list
列出当前项目中所有可用的spider。每行输出一个spider。
例子:
$ scrapy listexample
fetch
语法: scrapy fetch <url>
不需要项目
使用Scrapy下载器(downloader)下载给定的URL,并将获取到的内容送到标准输出。
该命令以spider下载页面的方式获取页面。例如,如果spider有 USER_AGENT 属性修改了 User Agent,该命令将会使用该属性。
因此,您可以使用该命令来查看spider如何获取某个特定页面。
该命令如果非项目中运行则会使用默认Scrapy downloader设定。
$ scrapy fetch --nolog http://www.example.com/some/page.html[ ... html content here ... ]$ scrapy fetch --nolog --headers http://www.example.com/{'Accept-Ranges': ['bytes'], 'Age': ['1263 '], 'Connection': ['close '], 'Content-Length': ['596'], 'Content-Type': ['text/html; charset=UTF-8'], 'Date': ['Wed, 18 Aug 2010 23:59:46 GMT'], 'Etag': ['"573c1-254-48c9c87349680"'], 'Last-Modified': ['Fri, 30 Jul 2010 15:30:18 GMT'], 'Server': ['Apache/2.2.3 (CentOS)']}
view
语法: scrapy view <url>
不需要项目
在浏览器中打开给定的URL,并以Scrapy spider获取到的形式展现。 有些时候spider获取到的页面和普通用户看到的并不相同。 因此该命令可以用来检查spider所获取到的页面,并确认这是您所期望的。
parse
语法: scrapy parse <url> [options]
需要项目,获取给定的URL并使用相应的spider分析处理。如果您提供 –callback 选项,则使用spider的该方法处理,否则使用 parse 。
支持的选项[Options]:
--spider=SPIDER
: 跳过自动检测spider并强制使用特定的spider--a NAME=VALUE
: 设置spider的参数(可能被重复)--callback or -c
: spider中用于解析返回(response)的回调函数--pipelines
: 在pipeline中处理item--rules or -r
: 使用 CrawlSpider 规则来发现用来解析返回(response)的回调函数--noitems
: 不显示爬取到的item--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': u'Example item', 'category': u'Furniture', 'length': u'12 cm'}]# Requests -----------------------------------------------------------------[]
settings
语法: scrapy settings [options]
不需要项目,获取Scrapy的设定,在项目中运行时,该命令将会输出项目的设定值,否则输出Scrapy默认设定。
例子:
$ scrapy settings --get BOT_NAMEscrapybot$ scrapy settings --get DOWNLOAD_DELAY0
runspider
语法: scrapy runspider <spider_file.py>
不需要项目
在未创建项目的情况下,运行一个编写在Python文件中的spider。
$ scrapy runspider myspider.py[ ... spider starts crawling ... ]
version
语法: scrapy version [-v]
输出Scrapy版本。配合 -v 运行时,该命令同时输出Python, Twisted以及平台的信息,方便bug提交。
阅读全文
0 0
- scrapy - 2. 命令行工具
- scrapy命令行工具
- Scrapy命令行工具
- Scrapy--命令行工具
- Scrapy系列教程(1)------命令行工具
- Scrapy爬虫----(一)命令行工具
- Scrapy--命令行
- 4. 基本概念介绍1-scrapy命令行工具(常用)
- Scrapy爬虫入门教程三 命令行工具介绍和示例
- Scrapy学习笔记(3)--Command line tool(命令行工具)
- 跟我学系列,走进Scrapy爬虫(四)Scrapy命令行工具
- scrapy 的命令行
- 爬虫Scrapy-常用工具命令行
- scrapy命令行详解
- Scrapy爬虫笔记【4-Scrapy命令行】
- Scrapy的几个命令行命令
- 命令行工具
- 命令行工具
- RocketMQ : 4.1.0-incubating集群部署
- bzoj4260: Codechef REBXOR
- [编程题] 数字翻转
- AAA《深入理解mybatis原理》 MyBatis的架构设计以及实例分析
- bzoj 1907(树形dp)
- Scrapy命令行工具
- Threejs开发笔记之十纹理
- vector的定义
- Java知识图谱
- java.util包详解
- iOS程序的启动流程
- IntelliJ IDEA 开发工具使用学习资料
- MySQL 主从复制原理
- 《写给大家看的大数据》读后感