Scrapy框架| 详解Scrapy的命令行工具

简介: Scrapy框架| 详解Scrapy的命令行工具


1.写在前面的话


      今天开始JAP君正式来写Python的Scrapy爬虫框架的系列教程了,我大部分内容会根据Scrapy的官方文档来的,并且会写一些实战项目来练手。之前的文章中我已经写过有scrapy的基本入门和两个小实战,大家可以去看看。


      这篇文章我来写写Scrapy框架的命令行工具。接触过Scrapy的人都知道,我们很多操作是需要借助命令行来执行的,比如创建项目,运行爬虫等。所以了解和掌握这些命令对于scrapy的学习是很有帮助的!


2.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 ... ]


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


含义:测试电脑当前爬取速度性能


3.END


    上面应该是全部的Scrapy 的命令语法了,我是根据官网上的来写得,所以应该是比较准确的,大家可以收藏这篇文章,不记得的时候可以拿出来看一看,反复记忆一下!


    如果你觉得这篇文章对你有所帮助,可以点击右下角的“在看”或者给JAP君加个小鸡腿!JAVAandPython君---一个坚持原创技术文章输出的公众号

相关文章
|
27天前
|
数据采集 中间件 开发者
Scrapy爬虫框架-自定义中间件
Scrapy爬虫框架-自定义中间件
46 1
|
27天前
|
数据采集 中间件 Python
Scrapy爬虫框架-通过Cookies模拟自动登录
Scrapy爬虫框架-通过Cookies模拟自动登录
52 0
|
4月前
|
数据采集 存储 中间件
高效数据抓取:Scrapy框架详解
高效数据抓取:Scrapy框架详解
|
27天前
|
数据采集 中间件 数据挖掘
Scrapy 爬虫框架(一)
Scrapy 爬虫框架(一)
39 0
|
27天前
|
数据采集 XML 前端开发
Scrapy 爬虫框架(二)
Scrapy 爬虫框架(二)
38 0
|
3月前
|
数据采集 存储 XML
Scrapy框架实现数据采集的详细步骤
本文介绍了使用Scrapy框架从宁波大学经济学院网站爬取新闻或公告详情页内容的过程,包括创建Scrapy项目、编写爬虫规则、提取所需信息,并最终将数据存储到Excel文件中的方法和步骤。
Scrapy框架实现数据采集的详细步骤
|
3月前
|
数据采集 中间件 调度
Scrapy 爬虫框架的基本使用
Scrapy 爬虫框架的基本使用
|
3月前
|
数据采集 存储 中间件
Python进行网络爬虫:Scrapy框架的实践
【8月更文挑战第17天】网络爬虫是自动化程序,用于从互联网收集信息。Python凭借其丰富的库和框架成为构建爬虫的首选语言。Scrapy作为一款流行的开源框架,简化了爬虫开发过程。本文介绍如何使用Python和Scrapy构建简单爬虫:首先安装Scrapy,接着创建新项目并定义爬虫,指定起始URL和解析逻辑。运行爬虫可将数据保存为JSON文件或存储到数据库。此外,Scrapy支持高级功能如中间件定制、分布式爬取、动态页面渲染等。在实践中需遵循最佳规范,如尊重robots.txt协议、合理设置爬取速度等。通过本文,读者将掌握Scrapy基础并了解如何高效地进行网络数据采集。
191 6
|
3月前
|
存储 中间件 数据处理
深入解读 Scrapy 框架原理与源码
深入解读 Scrapy 框架原理与源码
49 1
|
4月前
|
数据采集 中间件 调度
当当网数据采集:Scrapy框架的异步处理能力
当当网数据采集:Scrapy框架的异步处理能力