scrapy常用的命令分为全局和项目两种命令,全局命令就是不需要依靠scrapy项目,可以在全局环境下运行,而项目命令需要在scrapy项目里才能运行。
一、全局命令
##使用scrapy -h可以看到常用的全局命令

[root@aliyun ~]# scrapy -h
Scrapy 1.5.0 - no active projectUsage:scrapy <command> [options] [args]Available commands:bench         Run quick benchmark testfetch         Fetch a URL using the Scrapy downloadergenspider     Generate new spider using pre-defined templatesrunspider     Run a self-contained spider (without creating a project)settings      Get settings valuesshell         Interactive scraping consolestartproject  Create new projectversion       Print Scrapy versionview          Open URL in browser, as seen by Scrapy

在bench下面的都是全局命令,bench是特殊的,即使在Available 下面展示,但仍然属于项目命令。
1、fetch命令
##fetch主要用来显示爬虫爬取的过程。
scrapy fetch 网址

[root@aliyun ~]# scrapy fetch http://www.baidu.com
2018-03-15 10:50:02 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: scrapybot)
2018-03-15 10:50:02 [scrapy.utils.log] INFO: Versions: lxml 4.1.1.0, libxml2 2.9.1, cssselect 1.0.3, parsel 1.4.0, w3lib 1.19.0, Twisted 17.9.0, Python 3.4.2 (default, Mar 15 2018, 10:26:10) - [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)], pyOpenSSL 17.5.0 (OpenSSL 1.0.2k-fips  26 Jan 2017), cryptography 2.1.4, Platform Linux-3.10.0-514.26.2.el7.x86_64-x86_64-with-centos-7.4.1708-Core
2018-03-15 10:50:02 [scrapy.crawler] INFO: Overridden settings: {}
2018-03-15 10:50:02 [scrapy.middleware] INFO: Enabled extensions:
['scrapy.extensions.memusage.MemoryUsage','scrapy.extensions.telnet.TelnetConsole','scrapy.extensions.corestats.CoreStats','scrapy.extensions.logstats.LogStats']
2018-03-15 10:50:02 [scrapy.middleware] INFO: Enabled downloader middlewares:
['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.httpproxy.HttpProxyMiddleware','scrapy.downloadermiddlewares.stats.DownloaderStats']
2018-03-15 10:50:02 [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']
2018-03-15 10:50:02 [scrapy.middleware] INFO: Enabled item pipelines:
[]
2018-03-15 10:50:02 [scrapy.core.engine] INFO: Spider opened
2018-03-15 10:50:02 [scrapy.extensions.logstats] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min)
2018-03-15 10:50:02 [scrapy.extensions.telnet] DEBUG: Telnet console listening on 127.0.0.1:6023
2018-03-15 10:50:02 [scrapy.core.engine] DEBUG: Crawled (200) <GET http://www.baidu.com> (referer: None)
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=http://s1.bdstatic.com/r/www/cache/bdorz/baidu.min.css><title>百度一下,你就知道</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper> <div class=s_form> <div class=s_form_wrapper> <div id=lg> <img hidefocus=true src=//www.baidu.com/img/bd_logo1.png width=270 height=129> </div> <form id=form name=f action=//www.baidu.com/s class=fm> <input type=hidden name=bdorz_come value=1> <input type=hidden name=ie value=utf-8> <input type=hidden name=f value=8> <input type=hidden name=rsv_bp value=1> <input type=hidden name=rsv_idx value=1> <input type=hidden name=tn value=baidu><span class="bg s_ipt_wr"><input id=kw name=wd class=s_ipt value maxlength=255 autocomplete=off autofocus></span><span class="bg s_btn_wr"><input type=submit id=su value=百度一下 class="bg s_btn"></span> </form> </div> </div> <div id=u1> <a href=http://news.baidu.com name=tj_trnews class=mnav>新闻</a> <a href=http://www.hao123.com name=tj_trhao123 class=mnav>hao123</a> <a href=http://map.baidu.com name=tj_trmap class=mnav>地图</a> <a href=http://v.baidu.com name=tj_trvideo class=mnav>视频</a> <a href=http://tieba.baidu.com name=tj_trtieba class=mnav>贴吧</a> <noscript> <a href=http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u=http%3A%2F%2Fwww.baidu.com%2f%3fbdorz_come%3d1 name=tj_login class=lb>登录</a> </noscript> <script>document.write('<a href="http://www.baidu.com/bdorz/login.gif?login&tpl=mn&u='+ encodeURIComponent(window.location.href+ (window.location.search === "" ? "?" : "&")+ "bdorz_come=1")+ '" name="tj_login" class="lb">登录</a>');</script> <a href=//www.baidu.com/more/ name=tj_briicon class=bri style="display: block;">更多产品</a> </div> </div> </div> <div id=ftCon> <div id=ftConw> <p id=lh> <a href=http://home.baidu.com>关于百度</a> <a href=http://ir.baidu.com>About Baidu</a> </p> <p id=cp>©2017 Baidu <a href=http://www.baidu.com/duty/>使用百度前必读</a>  <a href=http://jianyi.baidu.com/ class=cp-feedback>意见反馈</a> 京ICP证030173号  <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>2018-03-15 10:50:02 [scrapy.core.engine] INFO: Closing spider (finished)
2018-03-15 10:50:02 [scrapy.statscollectors] INFO: Dumping Scrapy stats:
{'downloader/request_bytes': 212,'downloader/request_count': 1,'downloader/request_method_count/GET': 1,'downloader/response_bytes': 1476,'downloader/response_count': 1,'downloader/response_status_count/200': 1,'finish_reason': 'finished','finish_time': datetime.datetime(2018, 3, 15, 2, 50, 2, 425038),'log_count/DEBUG': 2,'log_count/INFO': 7,'memusage/max': 44892160,'memusage/startup': 44892160,'response_received_count': 1,'scheduler/dequeued': 1,'scheduler/dequeued/memory': 1,'scheduler/enqueued': 1,'scheduler/enqueued/memory': 1,'start_time': datetime.datetime(2018, 3, 15, 2, 50, 2, 241466)}
2018-03-15 10:50:02 [scrapy.core.engine] INFO: Spider closed (finished)

##执行这条命令时我出现了一个错误
ImportError: No module named _sqlite3
##解决的办法是yum安装sqlite-devel,然后重新编译安装python

yum install -y sqlite-devel
cd /usr/local/src/Python-3.4.2
./configure prefix=/usr/local/python3
make && make install
ln -fs /usr/local/python3/bin/python3 /usr/bin/python

##注意,如果在scrapy项目目录之外执行这条命令,会使用scrapy默认的爬虫来进行爬取,如果在scrapy项目目录内运行命令,则会调用该项目的爬虫来进行网页的爬取。
##可以通过scrapy fetch -h 来查看命令参数

[root@aliyun ~]# scrapy fetch -h
Usage
=====scrapy fetch [options] <url>Fetch a URL using the Scrapy downloader and print its content to stdout. You
may want to use --nolog to disable loggingOptions
=======
--help, -h              show this help message and exit
--spider=SPIDER         use this spider
--headers               print response HTTP headers instead of body
--no-redirect           do not handle HTTP 3xx status codes and print responseas-isGlobal Options
--------------
--logfile=FILE          log file. if omitted stderr will be used
--loglevel=LEVEL, -L LEVELlog level (default: DEBUG)
--nolog                 disable logging completely
--profile=FILE          write python cProfile stats to FILE
--pidfile=FILE          write process ID to FILE
--set=NAME=VALUE, -s NAME=VALUEset/override setting (may be repeated)
--pdb                   enable pdb on failure

通过headers可以获取网页的头部信息,通过logfile可以指定日志文件的存储,nolog可以控制不显示运行爬取的日志,spider可以控制用哪个爬虫,loglevel控制日志的等级。
##通过headers来获取网页的头部信息,nolog参数不显示爬取过程的日志。

[root@aliyun ~]# scrapy fetch --headers --nolog http://www.baidu.com
> User-Agent: Scrapy/1.5.0 (+https://scrapy.org)
> Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
> Accept-Language: en
> Accept-Encoding: gzip,deflate
>
< Content-Type: text/html
< Last-Modified: Mon, 23 Jan 2017 13:28:28 GMT
< Cache-Control: private, no-cache, no-store, proxy-revalidate, no-transform
< Server: bfe/1.0.8.18
< Date: Thu, 15 Mar 2018 03:15:23 GMT
< Pragma: no-cache
< Set-Cookie: BDORZ=27315; max-age=86400; domain=.baidu.com; path=/

通过使用fetch可以很方便显示出爬取网页的过程。
2、runspider命令
scrapy使用runspider命令,可以实现不用scrapy项目直接运行一个爬虫文件。

3、setting命令
setting可以查看scrapy对应的配置信息,如果在scrapy项目目录内使用就是查看项目的配置信息,如果在全局使用,那么就是查看默认配置信息。
##可以通过--get BOT_NAME来查看对应的scrapy信息,通过再项目目录执行以及在全局运行。

[root@aliyun test_scrapy]# cd /python/test_scrapy/myfirstpjt/
[root@aliyun myfirstpjt]# scrapy settings --get BOT_NAME
myfirstpjt
[root@aliyun myfirstpjt]# cd
[root@aliyun ~]# scrapy settings --get BOT_NAME
scrapybot

4、shell命令
shell可以启动scrapy的交互终端(scrapy shell),常常在开发以及测试时候使用。
##在全局下执行

5、startproject命令
用于创建scrapy项目。scrapy startproject projectname
6、version命令
version命令可以显示scrapy的版本

[root@aliyun ~]# scrapy version
Scrapy 1.5.0
##其他相关版本信息
[root@aliyun ~]# scrapy version -v
Scrapy       : 1.5.0
lxml         : 4.1.1.0
libxml2      : 2.9.1
cssselect    : 1.0.3
parsel       : 1.4.0
w3lib        : 1.19.0
Twisted      : 17.9.0
Python       : 3.4.2 (default, Mar 15 2018, 10:26:10) - [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)]
pyOpenSSL    : 17.5.0 (OpenSSL 1.0.2k-fips  26 Jan 2017)
cryptography : 2.1.4
Platform     : Linux-3.10.0-514.26.2.el7.x86_64-x86_64-with-centos-7.4.1708-Core

7、view命令
view可以下载网页,并且直接用浏览器查看
scrapy view url

二、项目命令
##项目命令要在项目的目录下运行
1、bench命令
bench能测试本地硬件的性能

[root@aliyun myfirstpjt]# scrapy bench
……
2018-03-16 14:56:22 [scrapy.extensions.logstats] INFO: Crawled 255 pages (at 1500 pages/min), scraped 0 items (at 0 items/min)
2018-03-16 14:56:23 [scrapy.extensions.logstats] INFO: Crawled 279 pages (at 1440 pages/min), scraped 0 items (at 0 items/min)
2018-03-16 14:56:24 [scrapy.extensions.logstats] INFO: Crawled 303 pages (at 1440 pages/min), scraped 0 items (at 0 items/min)
……
##从返回中看到每分钟大概能爬取1440个页面

2、genspider命令
genspider可以用来创建scrapy爬虫文件,这是一种快速创建爬虫文件的方式。
##查看当前可以使用的爬虫模板

[root@aliyun myfirstpjt]# scrapy genspider -l
Available templates:basiccrawlcsvfeedxmlfeed

##基于其中一个模板创建一个爬虫文件,scrapy genspider -t 模板 新爬虫名 新爬虫爬取的域名

[root@aliyun myfirstpjt]# scrapy genspider -t basic test www.baidu.com
Created spider 'test' using template 'basic' in module:myfirstpjt.spiders.test

##在项目目录内,能看到创建的test.py文件,里面已经写好了域名。

[root@aliyun myfirstpjt]# cd myfirstpjt/
[root@aliyun myfirstpjt]# ls
__init__.py  items.py  middlewares.py  pipelines.py  __pycache__  settings.py  spiders
[root@aliyun myfirstpjt]# cd spiders/
[root@aliyun spiders]# ls
__init__.py  __pycache__  test.py
[root@aliyun spiders]# cat test.py
# -*- coding: utf-8 -*-
import scrapyclass TestSpider(scrapy.Spider):name = 'test'allowed_domains = ['www.baidu.com']start_urls = ['http://www.baidu.com/']def parse(self, response):pass

3、check命令
check命令可以对爬虫文件进行一种交互式的检查。
scrapy check 爬虫名

##检查爬虫文件检查通过
[root@aliyun myfirstpjt]# scrapy check test----------------------------------------------------------------------
Ran 0 contracts in 0.000sOK

4、crawl命令
crawl命令可以启动某个爬虫。
scrapy crawl 爬虫名

[root@aliyun myfirstpjt]# scrapy crawl test --loglevel=INFO
2018-03-16 18:35:39 [scrapy.utils.log] INFO: Scrapy 1.5.0 started (bot: myfirstpjt)
2018-03-16 18:35:39 [scrapy.utils.log] INFO: Versions: lxml 4.1.1.0, libxml2 2.9.1, cssselect 1.0.3, parsel 1.4.0, w3lib 1.19.0, Twisted 17.9.0, Python 3.4.2 (default, Mar 15 2018, 10:26:10) - [GCC 4.8.5 20150623 (Red Hat 4.8.5-16)], pyOpenSSL 17.5.0 (OpenSSL 1.0.2k-fips  26 Jan 2017), cryptography 2.1.4, Platform Linux-3.10.0-514.26.2.el7.x86_64-x86_64-with-centos-7.4.1708-Core
2018-03-16 18:35:39 [scrapy.crawler] INFO: Overridden settings: {'ROBOTSTXT_OBEY': True, 'LOG_LEVEL': 'INFO', 'SPIDER_MODULES': ['myfirstpjt.spiders'], 'BOT_NAME': 'myfirstpjt', 'NEWSPIDER_MODULE': 'myfirstpjt.spiders'}
……'start_time': datetime.datetime(2018, 3, 16, 10, 35, 39, 671815)}
2018-03-16 18:35:39 [scrapy.core.engine] INFO: Spider closed (finished)

5、list命令
list命令可以列出当前使用的爬虫文件。

[root@aliyun myfirstpjt]# scrapy list
test

6、edit命令
edit命令可以直接编辑某个爬虫文件,在linux中使用比较好。

[root@aliyun myfirstpjt]# scrapy edit test

7、parse命令
parse命令可以实现获取指定的URL网址,并使用对应的爬虫文件进行处理和分析。

[root@aliyun myfirstpjt]# scrapy parse http://www.baidu.com --nolog>>> STATUS DEPTH LEVEL 0 <<<
# Scraped Items  ------------------------------------------------------------
[]
# Requests  -----------------------------------------------------------------
[]

转载于:https://blog.51cto.com/lsfandlinux/2087747

scrapy常用工具备忘相关推荐

  1. 常用工具备忘(更新中)

    2019独角兽企业重金招聘Python工程师标准>>> 在线生成ajax动态图标 android开源代码库 jar包查找 CSS验证 网页变灰 死链接检查 pdf在线工具 时序图在线 ...

  2. 速看常用工控通讯接口协议大全

    速看常用工控通讯接口协议大全 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺也能领取哦.最近比较闲,带做 ...

  3. ArcGIS工具备忘

    1.Repair Geometry (Data Management) 几何图形修复,比如面图层不满足节点坐标逆时针 2.Raster Domain (3D Analyst) 获取栅格范围 3.Int ...

  4. 《Ajax基础教程》一书推荐的JS工具备忘

    Firefox的Web开发扩展 http://chrispederick.com/work/firefox/webdeveloper/ MemTronic的HTML/JavaScript Crunch ...

  5. 水笔:20年好用软件或者工具备忘

    常用前端工具 Axialis IconGenerator --图标快速生成工具 https://www.axialis.com/download/ig.html ScreenToGif --动画生成器 ...

  6. 使用Scrapy构建一个网络爬虫

    记得n年前项目需要一个灵活的爬虫工具,就组织了一个小团队用Java实现了一个爬虫框架,可以根据目标网站的结构.地址和需要的内容,做简单的配置开发,即可实现特定网站的爬虫功能.因为要考虑到各种特殊情形, ...

  7. 初级数据分析师要具备什么技能?

    初级数据分析师要具备什么技能? [导语]事实上,想要短时间内快速成为技术方向的数据分析师,是非常很难的.一定要底子深基础牢,编程语言基础.统计学知识.算法.数据结构样样不能少,甚至得精通,那么初级数据 ...

  8. 基于python的scrapy爬虫抓取京东商品信息

    这是上的第二节爬虫课程的课后作业:抓取京东某类商品的信息,这里我选择了手机品类. 使用scrapy爬虫框架,需要编写和设置的文件主要有phone.py , pipelines.py , items.p ...

  9. 最流行的python爬虫框架_Python最火爬虫框架Scrapy入门与实践

    Scrapy框架简介Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 通常我 ...

最新文章

  1. javascript中数据类型转换
  2. VS2008水晶报表发布部署总结
  3. 如何在blog中添加背景音乐
  4. 基于SSM的健身俱乐部管理系统
  5. 世界人工智能大赛 Top1 方案!手写体 OCR 识别
  6. layerdate时间控件的用法
  7. 或是全球首款接入5G网络手机 华为折叠屏新机2月24日发布
  8. 小米android手机怎么刷机,小米4手机怎么刷机 小米4刷机图文教程
  9. matlab逻辑符号怎么打,matlab逻辑符号
  10. async function
  11. 在线制作流程图、思维导图(基于ProcessOn平台)
  12. nginx简单配置多个域名转向多个tomcat
  13. windows和linux双系统
  14. 将 MATLAB 搬到虚拟机
  15. VB编程:DoWhile...Loop当循环计算0~100累加和-15_彭世瑜_新浪博客
  16. 在SQL中删除重复记录(多种方法) [转]
  17. 帝国危机,线程要罢工了!
  18. html访问MDB数据库,使用MDB Viewer打开和查看访问数据库 | MOS86
  19. codelite+mingw安装
  20. 收藏从未结束,学习从未开始

热门文章

  1. c++stl和std_std :: replace()函数以及C ++ STL中的示例
  2. Java——线程的四种不同形式
  3. 用户关系表 存储_列式存储系列(一)CStore
  4. HDU ACM Steps攻略 ACM Steps的全部内容
  5. java静态类和非静态类的区别_Java中静态内部类和非静态内部类到底有什么区别?...
  6. 汇编:实现日历星期数查询工具
  7. 1006. 换个格式输出整数 (15)
  8. 【面试总结】2021Java春招面试经历
  9. java将某个数按比例分配应用题,按比例分配应用题
  10. ubuntu18.04安装chrome和优化界面