码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-05-22 13:37:27      阅读:245      评论:0      收藏:0      [点我收藏+]

标签:爬虫   ubuntu   python   scrapy   spider   

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 weather
deng@dengjingdong:~/weather$ scrapy genspider -l
Available templates:
  basic
  crawl
  csvfeed
  xmlfeed
deng@dengjingdong:~/weather$ scrapy genspider -d basic
# -*- coding: utf-8 -*-
import scrapy


class $classname(scrapy.Spider):
    name = "$name"
    allowed_domains = ["$domain"]
    start_urls = (
        'http://www.$domain/',
    )

    def parse(self, response):
        pass

deng@dengjingdong:~/weather$ scrapy genspider -t basic spider1 www.jd.com
Created 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 list
myweather
spider1
weather_spider1
weather_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来添加自己的项目命令。








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

标签:爬虫   ubuntu   python   scrapy   spider   

原文地址:http://blog.csdn.net/djd1234567/article/details/45913967

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!