scrapy爬虫精要(3)

来源:互联网 发布:买淘宝号 编辑:程序博客网 时间:2024/06/05 18:18
第三天到了,现在我们已经知道了四个命令startproject、genspider、crawl、shell
那么还有多少个命令呢


我们打开命令行,输入scrapy然后回车:
c:\myworkspace\my_first_scrapy>scrapy


Scrapy 1.1.0rc1 - project: my_first_scrapy


Usage:
  scrapy <command> [options] [args]


Available commands:
  bench         Run quick benchmark test
  check         Check spider contracts
  commands
  crawl         Run a spider
  edit          Edit spider
  fetch         Fetch a URL using the Scrapy downloader
  genspider     Generate new spider using pre-defined templates
  list          List available spiders
  parse         Parse URL (using its spider) and print the results
  runspider     Run a self-contained spider (without creating a project)
  settings      Get settings values
  shell         Interactive scraping console
  startproject  Create new project
  version       Print Scrapy version
  view          Open URL in browser, as seen by Scrapy


Use "scrapy <command> -h" to see more info about a command




然后我们可以看到一大堆命令,从头开始讲
中文版:http://scrapy-chs.readthedocs.org/zh_CN/0.24/topics/commands.html
英文版:
http://doc.scrapy.org/en/1.0/topics/commands.html




bench命令用于检测scrapy是否安装成功,用法:
c:\myworkspace\my_first_scrapy>scrapy bench




check命令用于检测本项目爬虫的完整性,用法1:
c:\myworkspace\my_first_scrapy>scrapy check -l
用法2:
c:\myworkspace\my_first_scrapy>scrapy check


commands命令的意思是可以自定义命令,至于怎么自定义可以在C:\Python27\Lib\site-packages\scrapy-1.1.0rc1-py2.7.egg\scrapy\commands文件夹里面加自己写的哟,非常geek


crawl已经讲过了,另外讲一点就是可以加--nolog参数,用法:
c:\myworkspace\my_first_scrapy\my_first_scrapy>scrapy crawl --nolog dmoz
如此,就没有了日志文件输出


edit是linux专用命令,用法:
$XXXXX>scrapy edit dmoz
其中XXXX的意思就是项目路径位置,用处就是直接打开editor这个软件打开settings.py文件
在win下面没有默认安装的editor软件所以会提示错误。如果想要改成win下面软件来更改可以在C:\Python27\Lib\site-packages\scrapy-1.1.0rc1-py2.7.egg\scrapy\commands里面的edit.py里面进行修改。其实我觉得这个没什么不用,不如直接用编辑器打开settings.py


fetch命令,这个命令如果在项目里面运行的话,会采用项目设置来进行运行,如果不在项目目录也可以运行,只不过会用默认设置,用法1:
c:\myworkspace\my_first_scrapy\my_first_scrapy>scrapy fetch --nolog http://www.example.com/some/page.html
这样会直接将结果输出在当前的命令行窗口里面,用法2:
c:\myworkspace\my_first_scrapy\my_first_scrapy>scrapy fetch --nolog http://www.e
xample.com/some/page.html > 2.html
这样会输出结果到当前目录下面的2.html,当然也可以输出到各种文件名


genspider已经讲过了,这里多提一点,如果想要更少的敲代码,也即更加优雅的生成爬虫的话,就可以用:
c:\myworkspace\my_first_scrapy\my_first_scrapy>scrapy genspider -l
来列出已经存在的爬虫模板
用:
c:\myworkspace\my_first_scrapy\my_first_scrapy>scrapy genspider -d basic
来列出对应爬虫模板的内容
用:
scrapy genspider -t basic abc def.com
来用basic模板生成name为abc,allows_urls为def.com的模板
其中,我们可以在C:\Python27\Lib\site-packages\scrapy-1.1.0rc1-py2.7.egg\scrapy\templates\spiders
这个文件夹里写自己的模板,怎么写官方文档也没有写(摊手),可以参考(也就是抄)其他的模板来写


list命令的意思就是可以列出我们这个项目到底有多少只爬虫
用法就是
c:\myworkspace\my_first_scrapy>scrapy list


runspider其实也是运行爬虫的一个方式,只不过传入的参数不是爬虫的名字而是爬虫所在的文件名:
c:\myworkspace\my_first_scrapy>scrapy runspider my_first_scrapy\spiders\dmoz.py
只不过这样需要来回调整当前所在目录


setting命令,没卵用,直接改settings.py就成


shell命令,前面讲过了


startproject命令,前面讲过了


version命令顾名思义,就是版本,用法1:
c:\myworkspace\my_first_scrapy>scrapy version
这个可以获取scrapy的版本号
用法2:
c:\myworkspace\my_first_scrapy>scrapy version -v
加一个-v参数,这样可以获得更加详尽的信息
比如这样
Scrapy    : 1.1.0rc1
lxml      : 3.5.0.0
libxml2   : 2.9.0
Twisted   : 15.5.0
Python    : 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:40:30) [MSC v.1500 64
bit (AMD64)]
pyOpenSSL : 0.15.1 (OpenSSL 1.0.2f  28 Jan 2016)
Platform  : Windows-7-6.1.7601-SP1




parse命令就是用当前项目的parse函数来爬取页面,然后在控制台返回结果,用法:
c:\myworkspace\my_first_scrapy>scrapy parse "http://www.dmoz.org/Computers/Progr
amming/Languages/Python/Books/"
它用来检验parse函数是否能够正常的运行




view命令的意思就是可以在浏览器打开我们所爬取到的数据
用法就是
c:\myworkspace\my_first_scrapy>scrapy view "http://www.dmoz.org/Computers/Programming/Languages/Python/Books/"
也即当你的爬虫爬出的结果总是找不到某个值,你可以用这个参数来看一下你所要爬取的网页被爬取到的未选择的那个整个网页是什么样子的。(句子比较长你仔细体会一下)




最后,还有一个叫做deploy的命令,新出的,命令行里面的帮助并没有,官方文档讲的也不是很清楚,我改天再研究研究




最最后,对于不清楚的命令可以直接scrapy XXXXX
xxxxx代表命令,然后后面不加任何参数,这样scrapy会给help提示的。




其实说这么多,不试肯定记不住,试试吧!
0 0
原创粉丝点击