Scrapy 命令

1.创建项目


scrapy startproject myproject

该命令将会在 myproject 目录中创建一个 Scrapy 项目。接下来,进入到项目目录中:

cd myproject

这时候您就可以使用 scrapy 命令来管理和控制您的项目了。




2.控制项目



您可以在您的项目中使用 scrapy 工具来对其进行控制和管理。
比如,创建一个新的 spider:

scrapy genspider mydomain mydomain.com

这时,你就创建了一个命名为 mydomain 的 spider,其默认代码如下:

# -*- coding: utf-8 -*-
import scrapy

class MydomainSpider(scrapy.Spider):
    name = "mydomain"
    allowed_domains = ["mydomain.com"]
    start_urls = (
        'http://www.mydomain.com/',
    )

    def parse(self, response):
        pass




3.Scrapy命令



** startproject **

  • 语法: scrapy startproject <project_name>
  • 是否需要项目: no
  • 作用:在 project_name 文件夹下创建一个名为 project_name 的 Scrapy 项目

** genspider **

  • 语法: scrapy genspider [-t template] <name> <domain>
  • 是否需要项目: yes
  • 作用:在当前项目中创建 spider

** crawl **

  • 语法: scrapy crawl <spider>
  • 是否需要项目: yes
  • 作用:使用 spider 进行爬取。

** check **

  • 语法: scrapy check [-l] <spider>
  • 是否需要项目: yes
  • 作用:运行 contract 检查

** list **

  • 语法: scrapy list
  • 是否需要项目: yes
  • 作用:列出当前项目中所有可用的 spider

edit

  • 语法: scrapy edit <spider>
  • 是否需要项目: yes
  • 使用 EDITOR
    中设定的编辑器编辑给定的spider。
    该命令仅仅是提供一个快捷方式。开发者可以自由选择其他工具或者IDE来编写调试spider。

fetch

  • 语法: scrapy fetch <url>
  • 是否需要项目: no
  • 作用:使用Scrapy下载器(downloader)下载给定的URL,并将获取到的内容送到标准输出。
    该命令以spider下载页面的方式获取页面。例如,如果spider有 USER_AGENT 属性修改了 User Agent,该命令将会使用该属性。因此,您可以使用该命令来查看spider如何获取某个特定页面。该命令如果非项目中运行则会使用默认Scrapy downloader设定。

例子:

$ scrapy fetch --nolog http://www.example.com/some/page.html
[ ... html content here ... ]

view

  • 语法: scrapy view <url>
  • 是否需要项目: no
  • 作用:在浏览器中打开给定的URL,并以Scrapy spider获取到的形式展现。 有些时候spider获取到的页面和普通用户看到的并不相同。 因此该命令可以用来检查spider所获取到的页面,并确认这是您所期望的。

例子:

$ scrapy view http://www.example.com/some/page.html
[ ... browser starts ... ]

shell

  • 语法: scrapy shell [url]
  • 是否需要项目: no
  • 作用:以给定的URL(如果给出)或者空(没有给出URL)启动Scrapy shell。 查看 Scrapy终端(Scrapy shell) 获取更多信息。

例子:

$ scrapy shell http://www.example.com/some/page.html
[ ... scrapy shell starts ... ]

parse

  • 语法: scrapy parse <url> [options]
  • 是否需要项目: yes
  • 作用:获取给定的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]
  • 是否需要项目: no
  • 作用:获取Scrapy的设定,在项目中运行时,该命令将会输出项目的设定值,否则输出Scrapy默认设定。

例子:

$ scrapy settings --get BOT_NAME
myproject
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容