scrapy爬虫-------命令解析

来源:互联网 发布:舆情分析研判数据 编辑:程序博客网 时间:2024/05/18 22:40

scrapy是通过命令行进行控制的,你可以在命令行中输入一个scrapy,会出现一拍命令。

你也可以通过tree来查看scrapy的目录结构,scrapy.cfg存放的目录被认为是项目的根目录,该文件中包含python模块名的字段定义了项目的设置。下面的代码是我一个爬取天气的爬虫中的.cfg文件。

# Automatically created by: scrapy startproject## For more information about the [deploy] section see:# http://doc.scrapy.org/en/latest/topics/scrapyd.html[settings]default = weather.settings[deploy]#url = http://localhost:6800/project = weather

一般来说使用scrapy工具的第一件事就是创建您的scrapy项目

scrapy startproject weather
创建了项目之后,可以通过scrapy工具来对其进行控制和管理,有些scrapy命令要求必须在项目中运行,比如crawl,可以通过命令行查看,你可以在项目之外和项目中分别输入scrapy查看有什么不同的。

你可以使用scrapy <command> -h查看命令的作用,也可以通过scrapy -h查看所有可用的命令。

scrapy提供两种类型的命令,一种必须在scrapy项目中运行,另一种则为全局命令。

    全局命令    startproject    settings    runspider    shell    fetch    view    version

    项目命令     crawl    check    list    edit    parse    genspider    deploy    bench

startproject

 scrapy startproject project_name

在文件夹下创建一个名为project_name的scrapy项目

scrapy startproject myproject


genspider

scrapy genspider [-t template] <name> <domain>

在当前项目中创建spider,这仅仅是创建spider的一种快捷方法,该方法可以使用提前定义好的模板来生成spider,也可以子集创建spider的源码文件。

deng@dengjingdong:~$ cd weatherdeng@dengjingdong:~/weather$ scrapy genspider -lAvailable templates:  basic  crawl  csvfeed  xmlfeeddeng@dengjingdong:~/weather$ scrapy genspider -d basic# -*- coding: utf-8 -*-import scrapyclass $classname(scrapy.Spider):    name = "$name"    allowed_domains = ["$domain"]    start_urls = (        'http://www.$domain/',    )    def parse(self, response):        passdeng@dengjingdong:~/weather$ scrapy genspider -t basic spider1 www.jd.comCreated spider 'spider1' using template 'basic' in module:  weather.spiders.spider1

crawl

scrapy crawl <spider>

使用spider进行抓取

scrapy crawl weather


check

scrapy check [-l] <spider>

运行contract检查


list

scrapy list

列出当前项目中所有可用的spider,每一行输出一个spider。

deng@dengjingdong:~/weather$ scrapy listmyweatherspider1weather_spider1weather_spider2

edit

scrapy edit <spider>

使用EDITOR中设定的编辑器编辑给定的spider,在我电脑里运行的是vim,我是ubuntu。


fetch

scrapy fetch <url>

使用scrapy下载器下载给定的url,并将获取的内容送到标准输出。它是一个全局命令,在项目之外就可以运行,主要是提取网页的内容到标准输出中。

scrapy fetch --nolog --headers http://www.example.com/

view

scrapy view <url>

在浏览器中打开给定的url,并以scrapy spider获取道德形式展现。有些时候spider获取到的页面和普通用户看到的并不相同。因此该命令可以用来检查spider所获取的页面,并确认这是你所期望的。

scrapy view http://www.jd.com/

shell

scrapy shell [url]

以给定的URL或者空启动scrapy shell,进入shell之后你会看到一排命令行,可以进行你想要的操作。

scrapy shell http://www.jd.com/


parse

scrapy parse <url> [option]

获取给定的URL并使用相应的spider分析处理。如果你提供--callback选项,则使用spider的该方法处理,否则使用parse。

这个命令还需补充一下,未完待续。

    --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: 显示每个请求的详细信息


settings

scrapy settings [options]

获取scrapy的设定,在项目中运行是,该命令将会输出项目的设定值,否则输出scrapy默认设定。

scrapy settings --get BOT_NAME

scrapy settings --get DOWN_OAD_DELAY


runspider

scrapy runspider <spider_file.py>

在未创建项目的情况下,运行一个编写在python文件中的spider。

scrapy runspider myspider.py


version

scrapy version [-v]

输出scrapy版本。配合-v运行时,该命令同时输出python。twisted以及平台的信息,方便bug提交。


deploy

scrapy deploy [<target:project> | -l <target> | -l]

将项目部署到scrapyd服务


bench

scrapy bench

运行benchmark测试


自定义项目命令,你可以通过COMMAND——MODULE来添加自己的项目命令。








0 0
原创粉丝点击