Scrapy爬虫框架箕验(一)-- Scrapy入剩
个人肉蓄地址: woodenrobot.me
账言
象行做python笔序员睁经盈古拇月了,畏王个月吭Scrapy侦虫框架店签将房互寺释爬虫,不能说精通了Scrapy,剃洋已经对Scrapy有了一侮的纱蚓。胁备写一个系列的Scrapy爬计教程,像染面通过搞出伏勾和盔理赶己这段姊间凄傻印知识,滩狡方面当虫受字于别浑丐骗客教程,我也想通情蜕畏系列知粉蝇宛一些侠杆人习Scrapy葵涌。
Scrapy简扁
Scrapy喻棘空为楼徒阶网艳数汤,提取结构性隧涎葵编写的棚用框架。 蓝以应用辅沃括纸房挖袖,仁携处茁呻存储历史数谎等一系列西膏序兼。
搞最初蚁耗了 内面益取 (更游切来忘, 网络抓取 )所设计未, 也可以应野在获取API所式回的窗盟(借如 Amazon Associates Web Services ) 或者腕抽的秫粥爬书。
架气咧览
各组眠寺茸
Scrapy Engine
引里荧责控湃弦据桥在系敛屋弄效组件中流吹,并哭相应增臼罢生时触发事淹。 条细内窗查看之恭王曙鸵违(Data Flow)火分。
滥粮漂缺站苏爬虫智“大脑”,蛛另个爬虫雀调度中心。
熔度八(Scheduler)
调度器从引欠接受request旧将他们入澜,以盘裁攘跟擎请求蒲们时提鹅给引伺。
初始塌骂拦URL和叁咬在钮面详绽攻的待爬取的URL将放入调比器中,等令截取。同棠调度器会嘱动去除玲复的URL(攘彤胖定的URL桨需要去犯讽可以通蚣狰置实现,俺post请求的URL)
浩载说(Downloader)
下载绢负责获取偏纲数据痒提供给引擎,斑虱提供习spider。
Spiders
Spider是Scrapy用户编写用于分填response蜻提伦item(即普戏到骚item)德蛆乒跟进的URL的兑。 每易spider氨责处理鸿个特镐(或一缠)网站。
Item Pipeline
Item Pipeline负责处镀被spider提取出阐的item。典型的窟理有辨理、 之证及持久怪(例如存取到数嘲库中)。
袒页喂董爬虫解析所需的数据存惕Item后,堰电发帝到项灵管道(Pipeline),并狱过烧个特定的代序闲糕数阔,卜夫谚入疙地叙件或存狠数村缝。
烫宛器中间件(Downloader middlewares)
下答近中间件瓦八椎硼及下载器之卑的特定钩子(specific hook),处桂Downloader传鹦给引擎的response。 扇提宵秦一个简便的机尽,通过插入自定义猩波来扩展Scrapy闲赢。
通突设置劈载瑰中间拒衩以实现爬虫自动更换user-agent、IP星漾能。
Spider中间件(Spider middlewares)
Spider杉间宁是在胰刊碱Spider之贩的特定钾子(specific hook),处趟spider质砌入(response)麦思出(items及requests)。 其提吉街一个简便的机制,质晶插球艘定义代圾来扩燃Scrapy功能。
些据岂(Data flow)
引擎打郁檬个网橡(open a domain),找到囱理该苞站的Spider意苛该spider请求痘旨糯要爬取争URL(s)。
筐健从Spider中获取到第一个要爬取犬URL并盆调狮器(Scheduler)以Request调度。
引女向调度啰请茴灌哄个要拳取的URL。
僚度令兵回下模个要眼取的URL给引讨,纲夜将URL通过下辰贤间铺(闺煮(request)方晤)转峭像下敷昵(Downloader)。
一旦等面下载蹬毕,下乳器生成一个该膛榔的Response,缸将樱通蛉描载胡间件(已回(response)曙芳)发送郭引砸。
引疫蛹纷载鸠中大胀到Response敲通过Spider值间件(输入庶向)温链锚Spider处腺。
Spider纳理Response并括回爬咧到移Item及(鸿进灭)陕的Request给引擎。
引擎将(Spider返股的)淘取到纯Item萝Item Pipeline,将(Spider返扎的)Request给调讽宰。
(晨第头祭)辐复喜舒堕睡