Scrapy_Spider的用法

一、Spider运行流程:

  • 1.定义爬取网站的动作

  • 2.分析爬取下来的网页

  • 3.以初始的URL初始化Request,并设置回调函数。当该Request成功请求并返回时,Request生成并作为参数传给该回调函数

  • 4.在回调函数内分析返回的网页内容.返回结果有两种形式,一种是解析到的有结果返回字典Item对象,她们可以讲过处理后(或直接)保存。另一种是解析得到下一个(如下一页)链接,可以利用此链接构造Request并设置新的回调函数,返回Request等待后续调度。

  • 5.如果返回的是字典或Item对象,我们可以通过Feed Exports等组件将返回结果存入到文件.如果设置了Pipeline的话,我们可以使用Pipeline处理(如过滤、修正等)并保存.

  • 6.如果返回的是Request,那么Request执行成功得到Response之后,Response会被传递给Request中定义的回调函数,在回调函数中我们可以再次使用选择器来分析新得到的网页内容,并根据分析的数据生成Item。

二、Spider类分析

我们定义的Spider是继承自scrapy.spiders.Spider。这个类是最简单最基本的Spider类,其他Spider必须继承这个类。还有后面一些特殊的Spider类也都是继承自它。
scrapy.spiders.Spider这个类提供了start_requests()方法的默认实现,读取并请求start_urls属性,并根据返回的结果调用parse()方法解析结果。它还有如下一些属性:

  • name: 爬虫名称,是定义Spider名字的字符串。Spider的名字定义了Scrapy如果定位并初始化Spider,它必须是唯一的。不过可以生成多个相同的Spider实例,数量没有限制。name是SPider最重要的属性。如果Spider爬取单个网站,一个常见的做法是以该网站的域名来命名Spider。
  • allowed_domains:允许爬取的域名,可选配置,不在此范围的链接不会被跟进爬取。
  • start_urls:它是其实URL列表,当我们没有实现start_requests()方法时,默认会从这个列表开始抓取。
  • custom_settings:它是一个字典,是专属于本Spider的配置,此设置会覆盖项目全局的设置,必须在初始化前被更新,必须定义成类变量。
  • crawler:它是由from_crawler()方法设置的,代表的是本Spider类对应的Crawler对象。Crawler对象包含了很多项目组件,利用它我们可以获取项目的一些配置信息,如最常见的获取项目的设置信息,即Settings。
  • settings:它是一个Settings对象,利用它我们可以直接获取项目的全局设置变量。

除了基础属性,Spider还有一些常用的方法。

  • start_requests():此方法用于生成初始请求,它必须返回一个可迭代对象。此方法会默认使用start_urls里面的URL来构造Request,而且Request是GET请求方式。如果我们想在启动时以POST方式访问某个站点,可以直接重写这个方法,发送POST请求时使用FormRequest即可。
  • parse():当Response没有指定回调函数时,该方法会默认呗调用。它负责处理Response,处理返回结果,并从中提取出想要的数据和下一步的请求,然后返回。该方法需要返回一个包含Request或Item的可迭代对象。
  • closed():当Spider关闭时,该方法会被调用,在这里一般会定义释放资源的一些操作或其他收尾操作。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,826评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,968评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,234评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,562评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,611评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,482评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,271评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,166评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,608评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,814评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,926评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,644评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,249评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,866评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,991评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,063评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,871评论 2 354

推荐阅读更多精彩内容

  • 黎明的曙光揭去夜幕的轻纱,一如既往的早早的来到孩子们的寝室,我到寝室的时候孙老师已经在孩子们的寝室里像妈妈一...
    977_阅读 369评论 0 2
  • 今天是我们的师徒结对日,有往年不同的是我也是师傅了,实际上我深感身上有很多不足的地方,我现在还不足以成为别人的师傅...
    强丽阅读 190评论 1 1
  • 我家女儿将要毕业,初中三年,个子长到了1.68米,成长为一个极有个性的人,做什么都有一股不服他人的劲。 女儿文笔不...
    lixiangzhen阅读 554评论 3 7
  • 对他来说学习从来不成问题。年级第一?省级比赛第一?只要是他想,还没有做不到的事情。 老师都懒得去招惹他,只不过是自...
    腐朽乙女心阅读 99评论 0 1