Python爬虫学习(十七)Scrapy命令行工具
号外, 文末有爬虫小实例
我们可以使用命令行工具对Scrapy项目进行控制,比如Python爬虫学习(十六)初窥Scrapy用的startproject
、genspider
以及crawl
命令。
Scrapy的命令都是如下格式:
scrapy <command> [options] [args]
我们可以使用:
scrapy -h
查看可用的命令,如下:
当你需要查看某条命令的详细信息时,可以用:
scrapy <command> -h
比如:
总的来说,Scrapy提供了两种命令,一种是全局命令,另一种是项目命令。项目命令必须在项目中运行,而全局命令则不需要。
全局命令:
- startproject
- settings
- runspider
- shell
- fetch
- view
- version
项目命令:
- crawl
- check
- list
- edit
- parse
- genspider
- deploy
- bench
那就让我们尝试用一下呗。
startproject
- 语法:
scrapy startproject <project_name> [project_dir]
- 不需要项目
如果不记得用法,记得用scrapy startproject -h
settings
- 语法:
scrapy settings [options]
- 不需要项目
如果你在项目中运行,该命令将会输出项目的设定值,否则输出默认值。
runspider
- 语法:
scrapy runspider [options] <spider_file>
- 不需要项目
shell
- 语法:
scrapy shell [url|file]
- 不需要项目
以给定的url|file
(如果给出)或者空(没有给出)启动Scrapy shell。Scrapy shell是一个交互终端,供您在未启动spider的情况下尝试及调试爬取代码。
比如,scrapy shell "http://www.baidu.com"
fetch
- 语法:
scrapy fetch [options] <url>
-
不需要项目
我们使用scrapy fetch --headers -nolog "http://www.baidu.com"
输出响应的头部信息:
view
- 语法:
scrapy view [options] <url>
- 不需要项目
在浏览器中打开给定的URL,并以Scrapy spider获取到的形式展现。 有些时候spider获取到的页面和普通用户看到的并不相同。 因此该命令可以用来检查spider所获取到的页面,并确认这是你所期望的。
version
- 语法:
scrapy version [-v]
- 不需要项目
输出scrapy的版本信息,配合-v
运行,可以输出更多信息:
crawl
- 语法:
scrapy crawl [options] <spider>
-
需要项目
genspider
- 语法:
scrapy genspider [options] <name> <domain>
- 需要项目
在当前的项目中创建spider,这是一种创建spider的快捷方法。可以利用模板生成spider,scrapy提供了几种可选模板,如下:
在前篇我们使用的就是这种方法,当然,你也可以自己写spider。
至于其余的命令,感兴趣的话,就自己去尝试尝试呗!总之,记得-h
大法。
最后,附上一些入门级别的小爬虫:
糗事百科段子
豆瓣电影Top250
今日头条街拍
网易云音乐热评
安居客二手房信息
豆瓣模拟登录
艺龙酒店
内涵段子
新浪微博移动端
拉钩网
电影天堂
感兴趣的童鞋可以去看看,当然,最好是用你的聪明才智把它们一步步完善,比如加上异常处理,更厉害的反爬技术等等。
以上。