zoukankan      html  css  js  c++  java
  • scrapy命令行与shell

    scrapy命令行介绍

    scrapy提供了2种类型的命令,一种必须在scrapy项目种运行,称为项目命令;另一种则不需要在Scrapy项目中运行,称为全局命令。

    全局命令有7个

    startproject:创建项目
    settings:设置信息
    runspider:运行爬虫
    shell:打开Shell调试
    fetch:下载网页信息
    view:使用浏览器打开指定网址
    version:查看版本号
    

    项目命令有7个:

    crawl:运行指定爬虫
    check:检查爬虫代码
    list:列出所有爬虫
    edit:使用默认的编辑器编辑爬虫文件
    parse:使用爬虫抓取指定的URL
    genspider:创建爬虫
    bench:快速的性能测试
    

    查看命令如何使用,在命令行输入

    scrapy view -h即可

    创建scrapy爬虫的流程

    1.使用startproject创建项目
    scrapy startproject <project_name>[project_dir]
    如果没有指定url则创建的目录会与项目同名
    2.使用genspider创建爬虫
    该命令需要进入project_name目录执行

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

    -t可以指定爬虫的模板,name为爬虫名称,domain用于生成allowed_domains和start_urls Spider属性值。

    爬虫的模板有如下4个

    basic
    crawl
    csvfeed
    xmlfeed
    

    basic为基本爬虫模板,crawl模板生成继承CrawlSpider爬虫类的Spider,csvfeed、xmlfeed分别生成继承CSVFeedSpider与XMLFeedSpider爬虫类的Spider。

    例如创建爬虫,最后一项是域名,没写www是应为这是服务器名,http://是协议

    scrapy genspider -t crawl test baidu.com
    

    启动爬虫

    scrapy crawl <spidername>
    

    使用list查看爬虫

    scrapy list

    使用fetch获取数据

    scrapy fetch [option] <url>

    使用runspider运行爬虫

    scrqpy runspider [option] spider.py
    该命令可以在未创建项目时直接运行Spider爬虫文件,他比较有用的参数是--output=FILE或者-o FILE,将抓取结果保存到FILE中

    通过view使用浏览器打开URL

    scrapy view <url> [option]
    这个可以作用在scrapy下载的页面于我们使用浏览器看到的页面并不一致时候,我们可以通过下载该页面来进行比较。

    使用parse测试爬虫

    scrapy parse [options] url的链接
    可以为此命令指定Spider、Pipeline(管道)、回调函数等一系列爬虫系数。
    常用参数具体如下:

    --spider=SPIDER:使用特定的爬虫处理
    --a NAME=VALUE:设定爬虫参数
    --callback or -c:处理Response的回调函数
    --meta or -m:为Request穿的参数,例如- meta='{"foo":"bar"}'
    --pipelines:使用管道处理Item
    --rules or -r:使用CrawlSpider时指定的rules
    --noitems:不显示爬取的Item
    --nolinks:不显示解析的链接
    

    你回去会看书么,你在干什么
    把这本书借回去之后,今天你能看完么,或者说所谓的抄完

    这是14号晚上8点左右写的,原指望着回去可以看会书,但没看,很悲催。
    15号一天也没看书,直接玩去了,晒了被子,在房间里过了一天,基本上都是看电视打游戏。
    很悲催。
    这是16号,我8.40起床,由于之前的操劳,我的起床时间渐渐往后推,所以我需要慢慢的锻炼下,把我的起床时间往前推。
    

    Scrapy Shell命令行

    是一个交互终端,可以在未启动Spider的情况下调试代码。其本意是用来测试提取数据的代码,不过也可以将其作为正常的python终端,在上面运行测试任何Python代码。
    该终端是用来测试XPath和CSS表达式,测试其能否从抓取的网页中正确的提取数据。因此,无须启动爬虫,我们可以编写代码边测试,无需每次修改代码之后测试整个爬虫来查看抓取结果。

    Shell的启动命令为:

    scrapy shell <url>
    url为带爬取的地址。

    Shell也可以打开本地文件。

    读取当前目录下的文件需要加上路径./,相对路径使用../跳转到其他目录

    Scrapy的特殊命令:

    shelp():打印出所有可使用的属性与命令
    fetch(url[,redict=True]):从给定的URL获取一个新的Response,同时更新所有相关的项目数据。当指定redirect=False时,不会获取重定向的数据。
    fetch(request):根据给定的Request获取一个新的Response,同时更新所有相关的项目数据。
    view(reponse):使用指定的Response打开浏览器,方便检查抓取数据。当使用这条命令的时候,为使外部的图像或者表格等正确显示,会自动为Response中添加一个<base>标签,指定基准URL,也就是Response对应的URL
    

    使用Scrapy Shell下载页面时,会自动生成一些对象,分别说明如下:

    crawler:当前使用的crawel
    spider:处理当前页面使用的spider,当没有指定spider时,则是一个Spider对象。
    request:获取更新页面所对应的Request
    response:获取更新页面所对应的Response
    settings:当前的Scrapy配置命令
    

    使用scrapy shell 时会有大量的日志,可以使用 --nolog不打印日志

    努力拼搏吧,不要害怕,不要去规划,不要迷茫。但你一定要在路上一直的走下去,尽管可能停滞不前,但也要走。
  • 相关阅读:
    HDU 4864 Task(经典贪心)
    51Nod
    POJ 3122 Pie(二分+贪心)
    HDU 1053 Entropy(哈夫曼编码 贪心+优先队列)
    POJ 1328 Radar Installation(很新颖的贪心,区间贪心)
    11572
    HDU 1789 Doing Homework again(非常经典的贪心)
    合并果子(贪心+优先队列)
    CSU-ACM2018暑假集训6—BFS
    HDU 2102 A计划(两层地图加时间限制加传送门的bfs)
  • 原文地址:https://www.cnblogs.com/wkhzwmr/p/15413827.html
Copyright © 2011-2022 走看看