zoukankan      html  css  js  c++  java
  • 3-----Scrapy框架的命令行详解

    创建爬虫项目

    scrapy startproject 项目名

    例子如下:

    E:crawler>scrapy startproject test1
    New Scrapy project 'test1', using template directory 'd:\python36\lib\site-packages\scrapy\templates\project', created in:
        E:crawler	est1
    
    You can start your first spider with:
        cd test1
        scrapy genspider example example.com
    
    E:crawler>

    这个时候爬虫的目录结构就已经创建完成了,目录结构如下:

    接着我们按照提示可以生成一个spider,这里以百度作为例子,生成spider的命令格式为;
    scrapy genspider 爬虫名字 爬虫的网址

    E:crawler	est1>scrapy genspider baiduSpider baidu.com
    Created spider 'baiduSpider' using template 'basic' in module:
      test1.spiders.baiduSpider
    
    E:crawler	est1>

    关于命令详细使用

    命令的使用范围

    这里的命令分为全局的命令和项目的命令,全局的命令表示可以在任何地方使用,而项目的命令只能在项目目录下使用

    全局的命令有:
    startproject
    genspider
    settings
    runspider
    shell
    fetch
    view
    version

    项目命令有:
    crawl
    check
    list
    edit
    parse
    bench

    startproject
    这个命令没什么过多的用法,就是在创建爬虫项目的时候用

    genspider
    用于生成爬虫,这里scrapy提供给我们不同的几种模板生成spider,默认用的是basic,我们可以通过命令查看所有的模板

    E:crawler	est1>scrapy genspider -l
    Available templates:
      basic
      crawl
      csvfeed
      xmlfeed
    
    E:crawler	est1>

    当我们创建的时候可以指定模板,不指定默认用的basic,如果想要指定模板则通过
    scrapy genspider -t 模板名字

    E:crawler	est1>scrapy genspider -t crawl zhihuspider zhihu.com
    Created spider 'zhihuspider' using template 'crawl' in module:
      test1.spiders.zhihuspider
    
    E:crawler	est1>

    crawl

    这个是用去启动spider爬虫格式为:
    scrapy crawl 爬虫名字
    这里需要注意这里的爬虫名字和通过scrapy genspider 生成爬虫的名字是一致的

    check

    用于检查代码是否有错误,scrapy check

    list
    scrapy list列出所有可用的爬虫

    fetch
    scrapy fetch url地址 
    该命令会通过scrapy downloader 讲网页的源代码下载下来并显示出来

    这里有一些参数:
    --nolog 不打印日志
    --headers 打印响应头信息
    --no-redirect 不做跳转

    view
    scrapy view url地址
    该命令会讲网页document内容下载下来,并且在浏览器显示出来

    因为现在很多网站的数据都是通过ajax请求来加载的,这个时候直接通过requests请求是无法获取我们想要的数据,所以这个view命令可以帮助我们很好的判断

    shell
    这是一个命令行交互模式
    通过scrapy shell url地址进入交互模式
    这里我么可以通过css选择器以及xpath选择器获取我们想要的内容(xpath以及css选择的用法会在下个文章中详细说明),例如我们通过scrapy shell http://www.baidu.com

     

    这里最后给我们返回一个response,这里的response就和我们通requests请求网页获取的数据是相同的。
    view(response)会直接在浏览器显示结果
    response.text 获取网页的文本
    下图是css选择器的一个简单用法

    settings
    获取当前的配置信息
    通过scrapy settings -h可以获取这个命令的所有帮助信息

    E:crawler	est1>scrapy settings -h
    Usage
    =====
      scrapy settings [options]
    
    Get settings values
    
    Options
    =======
    --help, -h              show this help message and exit
    --get=SETTING           print raw setting value
    --getbool=SETTING       print setting value, interpreted as a boolean
    --getint=SETTING        print setting value, interpreted as an integer
    --getfloat=SETTING      print setting value, interpreted as a float
    --getlist=SETTING       print setting value, interpreted as a list
    
    Global Options
    --------------
    --logfile=FILE          log file. if omitted stderr will be used
    --loglevel=LEVEL, -L LEVEL
                            log level (default: DEBUG)
    --nolog                 disable logging completely
    --profile=FILE          write python cProfile stats to FILE
    --pidfile=FILE          write process ID to FILE
    --set=NAME=VALUE, -s NAME=VALUE
                            set/override setting (may be repeated)
    --pdb                   enable pdb on failure
    
    E:crawler	est1>

     拿一个例子进行简单的演示:(这里是我的这个项目的settings配置文件中配置了数据库的相关信息,可以通过这种方式获取,如果没有获取的则为None)

    E:crawler	est1>scrapy settings  --get=MYSQL_HOST
    None
    
    E:crawler	est1>

    runspider
    这个和通过crawl启动爬虫不同,这里是scrapy runspider 爬虫文件名称
    所有的爬虫文件都是在项目目录下的spiders文件夹中

    version
    查看版本信息,并查看依赖库的信息

    E:crawler	est1>scrapy version
    Scrapy 1.5.1
    
    E:crawler	est1>scrapy version -v
    Scrapy       : 1.5.1
    lxml         : 4.2.5.0
    libxml2      : 2.9.5
    cssselect    : 1.0.3
    parsel       : 1.5.0
    w3lib        : 1.19.0
    Twisted      : 18.7.0
    Python       : 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)]
    pyOpenSSL    : 18.0.0 (OpenSSL 1.1.0h  27 Mar 2018)
    cryptography : 2.3
    Platform     : Windows-7-6.1.7601-SP1
    
    E:crawler	est1>
  • 相关阅读:
    AtCoder Beginner Contest 167
    AtCoder Beginner Contest 166
    AtCoder Beginner Contest 165
    AtCoder Beginner Contest 164
    AtCoder Beginner Contest 163
    AtCoder Beginner Contest 162
    AtCoder Beginner Contest 161
    AtCoder Beginner Contest 160
    AtCoder Beginner Contest 159
    自定义Mybatis自动生成代码规则
  • 原文地址:https://www.cnblogs.com/edeny/p/9855716.html
Copyright © 2011-2022 走看看