• scrapy 爬虫学习一


    一:创建项目

    scrapy startproject 项目名字,例子如下:

    代码:scrapy startproject scrapy_test
    结果如下:
    New Scrapy project 'scrapy_test', using template directory 'g:mytoolsinstallanaconda2libsite-packagesscrapy	emplatesproject', created in:
        F:scrapy_test
    
    You can start your first spider with:
        cd scrapy_test
        scrapy genspider example example.com

    二:查看项目目录结构

    Windows 下查看命令:tree /f

    # 首先 进入项目:cd scrapy_test
    # 然后 tree /f
    │  scrapy.cfg
    │
    └─scrapy_test
        │  items.py
        │  middlewares.py
        │  pipelines.py
        │  settings.py
        │  __init__.py
        │
        └─spiders
                __init__.py

    三:生成一个爬虫

    scrapy genspider 爬虫名字 爬虫的网址,例子如下:

    代码:scrapy genspider baidu_sipder www.baidu.com
    结果如下:
    Created spider 'baidu_sipder' using template 'basic' in module:
      scrapy_test.spiders.baidu_sipder

    四:命令详细使用

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

    4.1:全局的命令有:
    startproject、genspider、settings、runspider、shell、fetch、view、version
    
    4.2:项目命令有:
    crawl、check、list、edit、parse、bench

    4.2:全局命令

    4.1.1:startproject命令

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

    4.1.2:genspider命令

    一:用于生成爬虫,这里scrapy提供给我们不同的几种模板生成spider,默认用的是basic,我们可以通过命令查看所有的模板
    代码示例如下:
    PS F:scrapy_test> scrapy genspider -l
    Available templates:
      basic
      crawl
      csvfeed
      xmlfeed
      
    二:当我们创建的时候可以指定模板,不指定默认用的basic,如果想要指定模板则通过 scrapy genspider -t 模板名字
    代码示例如下:
    PS F:scrapy_test> scrapy genspider -t crawl zhihu_sipder zhihu.com
    Created spider 'zhihu_sipder' using template 'crawl' in module:
      scrapy_test.spiders.zhihu_sipder

    4.1.3:settings命令

    一:示例代码如下
    PS F:scrapy_test> 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
    二:拿一个例子进行简单的演示:(这里是我的这个项目的settings配置文件中配置了数据库的相关信息,可以通过这种方式获取,如果没有获取的则为None)
    示例代码: PS F:scrapy_test
    > scrapy settings --get=MYSQL_HOST
    返回结果: None

    4.1.4:runspider命令

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

    4.1.5:shell命令

    4.1.6:fetch命令

    scrapy fetch url地址 
    该命令会通过scrapy downloader 讲网页的源代码下载下来并显示出来
    
    这里有一些参数:
    --nolog 不打印日志
    --headers 打印响应头信息
    --no-redirect 不做跳转

    4.1.7:view命令

    scrapy view url地址
    该命令会讲网页document内容下载下来,并且在浏览器显示出来
    
    因为现在很多网站的数据都是通过ajax请求来加载的,这个时候直接通过requests请求是无法获取我们想要的数据,
    所以这个view命令可以帮助我们很好的判断

    4.1.8:version命令

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

    4.2:项目命令有

    4.2.1:crawl命令

    这个是用去启动spider爬虫格式为:scrapy crawl 爬虫名字
    这里需要注意这里的爬虫名字和通过scrapy genspider 生成爬虫的名字是一致的
    代码示例如下: PS F:scrapy_test
    > scrapy crawl baidu_sipder 2019-05-29 14:05:51 [scrapy.utils.log] INFO: Scrapy 1.6.0 started (bot: scrapy_test) 2019-05-29 14:05:51 [scrapy.utils.log] INFO: Versions: lxml 4.2.5.0, libxml2 2.9.8, cssselect 1.0.3, parsel 1.5.1, w3lib 1.20.0, Twisted 18.7.0, Python 2.7.15 |Anaconda, Inc.| (default, May 1 2018, 18:37:09) [MSC v.1500 64 bit (AMD64)], pyOpenSSL 18.0.0 (OpenSSL 1.0.2p 14 Aug 2018), cryptography 2.3.1, Platform Windows-10-10.0.16299 2019-05-29 14:05:51 [scrapy.crawler] INFO: Overridden settings: {'NEWSPIDER_MODULE': 'scrapy_test.spiders', 'SPIDER_MODULES': ['scrapy_test.spiders'], 'ROBOTSTXT_OBEY': True, 'BOT_NAME': 'scrapy_test'} 2019-05-29 14:05:51 [scrapy.extensions.telnet] INFO: Telnet Password: 21038d7992503f4c 2019-05-29 14:05:51 [scrapy.middleware] INFO: Enabled extensions: ['scrapy.extensions.logstats.LogStats', 'scrapy.extensions.telnet.TelnetConsole', 'scrapy.extensions.corestats.CoreStats'] 2019-05-29 14:05:52 [scrapy.middleware] INFO: Enabled downloader middlewares:

    4.2.2:check命令

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

    示例代码如下: PS F:scrapy_test
    > scrapy check ---------------------------------------------------------------------- Ran 0 contracts in 0.000s OK

    4.2.3:list命令

    scrapy list列出所有可用的爬虫
    示例代码如下: PS F:scrapy_test
    > scrapy list baidu_sipder zhihu_sipder

    参考连接:https://www.cnblogs.com/zhaof/p/7183220.html

  • 相关阅读:
    搜索专题题解(FJUT
    Fliptile(枚举+DFS)
    Tempter of the Bone(DFS+剪枝)
    转换地图 (康托展开+预处理+BFS)
    C++输入输出常用格式(cin,cout,stringstream)
    FJUT
    STL迭代器
    几道STL题目(FJUT
    STL容器(Stack, Queue, List, Vector, Deque, Priority_Queue, Map, Pair, Set, Multiset, Multimap)
    Linux常用命令
  • 原文地址:https://www.cnblogs.com/fierydragon/p/10945863.html
Copyright © 2020-2023  润新知