电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

詳解Python的爬蟲框架 Scrapy

瀏覽:6日期:2022-07-15 13:01:33

網絡爬蟲,是在網上進行數據抓取的程序,使用它能夠抓取特定網頁的HTML數據。雖然我們利用一些庫開發一個爬蟲程序,但是使用框架可以大大提高效率,縮短開發時間。Scrapy是一個使用Python編寫的,輕量級的,簡單輕巧,并且使用起來非常的方便。

一、概述

下圖顯示了Scrapy的大體架構,其中包含了它的主要組件及系統的數據處理流程(綠色箭頭所示)。下面就來一個個解釋每個組件的作用及數據的處理過程(注:圖片來自互聯網)。

詳解Python的爬蟲框架 Scrapy

二、組件

1、Scrapy Engine(Scrapy引擎)

Scrapy引擎是用來控制整個系統的數據處理流程,并進行事務處理的觸發。更多的詳細內容可以看下面的數據處理流程。

2、Scheduler(調度)

調度程序從Scrapy引擎接受請求并排序列入隊列,并在Scrapy引擎發出請求后返還給他們。

3、Downloader(下載器)

下載器的主要職責是抓取網頁并將網頁內容返還給蜘蛛( Spiders)。

4、Spiders(蜘蛛)

蜘蛛是有Scrapy用戶自己定義用來解析網頁并抓取制定URL返回的內容的類,每個蜘蛛都能處理一個域名或一組域名。換句話說就是用來定義特定網站的抓取和解析規則。

蜘蛛的整個抓取流程(周期)是這樣的:

首先獲取第一個URL的初始請求,當請求返回后調取一個回調函數。第一個請求是通過調用start_requests()方法。該方法默認從start_urls中的Url中生成請求,并執行解析來調用回調函數。

在回調函數中,你可以解析網頁響應并返回項目對象和請求對象或兩者的迭代。這些請求也將包含一個回調,然后被Scrapy下載,然后有指定的回調處理。

在回調函數中,你解析網站的內容,同程使用的是Xpath選擇器(但是你也可以使用BeautifuSoup, lxml或其他任何你喜歡的程序),并生成解析的數據項。

最后,從蜘蛛返回的項目通常會進駐到項目管道。

5、Item Pipeline(項目管道)

項目管道的主要責任是負責處理有蜘蛛從網頁中抽取的項目,他的主要任務是清晰、驗證和存儲數據。當頁面被蜘蛛解析后,將被發送到項目管道,并經過幾個特定的次序處理數據。每個項目管道的組件都是有一個簡單的方法組成的Python類。他們獲取了項目并執行他們的方法,同時他們還需要確定的是是否需要在項目管道中繼續執行下一步或是直接丟棄掉不處理。

項目管道通常執行的過程有:

清洗HTML數據驗證解析到的數據(檢查項目是否包含必要的字段)檢查是否是重復數據(如果重復就刪除)將解析到的數據存儲到數據庫中

6、Downloader middlewares(下載器中間件)

下載中間件是位于Scrapy引擎和下載器之間的鉤子框架,主要是處理Scrapy引擎與下載器之間的請求及響應。它提供了一個自定義的代碼的方式來拓展Scrapy的功能。下載中間器是一個處理請求和響應的鉤子框架。他是輕量級的,對Scrapy盡享全局控制的底層的系統。

7、Spider middlewares(蜘蛛中間件)

蜘蛛中間件是介于Scrapy引擎和蜘蛛之間的鉤子框架,主要工作是處理蜘蛛的響應輸入和請求輸出。它提供一個自定義代碼的方式來拓展Scrapy的功能。蛛中間件是一個掛接到Scrapy的蜘蛛處理機制的框架,你可以插入自定義的代碼來處理發送給蜘蛛的請求和返回蜘蛛獲取的響應內容和項目。

8、Scheduler middlewares(調度中間件)

調度中間件是介于Scrapy引擎和調度之間的中間件,主要工作是處從Scrapy引擎發送到調度的請求和響應。他提供了一個自定義的代碼來拓展Scrapy的功能。

三、數據處理流程

Scrapy的整個數據處理流程有Scrapy引擎進行控制,其主要的運行方式為:

1.引擎打開一個域名,時蜘蛛處理這個域名,并讓蜘蛛獲取第一個爬取的URL。

2.引擎從蜘蛛那獲取第一個需要爬取的URL,然后作為請求在調度中進行調度。

3.引擎從調度那獲取接下來進行爬取的頁面。

4.調度將下一個爬取的URL返回給引擎,引擎將他們通過下載中間件發送到下載器。

5.當網頁被下載器下載完成以后,響應內容通過下載中間件被發送到引擎。

6.引擎收到下載器的響應并將它通過蜘蛛中間件發送到蜘蛛進行處理。

7.蜘蛛處理響應并返回爬取到的項目,然后給引擎發送新的請求。

8.引擎將抓取到的項目項目管道,并向調度發送請求。

9.系統重復第二部后面的操作,直到調度中沒有請求,然后斷開引擎與域之間的聯系。

四、驅動器

Scrapy是由Twisted寫的一個受歡迎的Python事件驅動網絡框架,它使用的是非堵塞的異步處理。

以上就是詳解Python的爬蟲框架 Scrapy的詳細內容,更多關于Python 爬蟲框架 Scrapy的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 杜康白酒加盟_杜康酒代理_杜康酒招商加盟官网_杜康酒厂加盟总代理—杜康酒神全国运营中心 | 深圳网站建设-高端企业网站开发-定制网页设计制作公司 | 客服外包专业服务商_客服外包中心_网萌科技 | 沧州友城管业有限公司-内外涂塑钢管-大口径螺旋钢管-涂塑螺旋管-保温钢管生产厂家 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 铝合金风口-玻璃钢轴流风机-玻璃钢屋顶风机-德州东润空调设备有限公司 | 灌木树苗-绿化苗木-常绿乔木-价格/批发/基地 - 四川成都途美园林 | 酸度计_PH计_特斯拉计-西安云仪 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn | 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 北京印刷厂_北京印刷_北京印刷公司_北京印刷厂家_北京东爵盛世印刷有限公司 | 范秘书_懂你的范文小秘书| 深圳办公室装修-写字楼装修设计-深圳标榜装饰公司 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | 金蝶帐无忧|云代账软件|智能财税软件|会计代账公司专用软件 | 雾度仪_雾度计_透光率雾度仪价格-三恩时(3nh)光电雾度仪厂家 | 精密钢管,冷拔精密无缝钢管,精密钢管厂,精密钢管制造厂家,精密钢管生产厂家,山东精密钢管厂家 | 防爆型气象站_农业气象站_校园气象站_农业四情监测系统「山东万象环境科技有限公司」 | 春腾云财 - 为企业提供专业财税咨询、代理记账服务 | 蓄电池回收,ups电池后备电源回收,铅酸蓄电池回收,机房电源回收-广州益夫铅酸电池回收公司 | 塑料检查井_双扣聚氯乙烯增强管_双壁波纹管-河南中盈塑料制品有限公司 | 企典软件一站式企业管理平台,可私有、本地化部署!在线CRM客户关系管理系统|移动办公OA管理系统|HR人事管理系统|人力 | 玻璃钢板-玻璃钢防腐瓦-玻璃钢材料-广东壹诺 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 分轨 | 上传文件,即刻分离人声和伴奏 | 等离子表面处理机-等离子表面活化机-真空等离子清洗机-深圳市东信高科自动化设备有限公司 | 不锈钢丸厂家,铝丸,铸钢丸-淄博智源铸造材料有限公司 | 冷柜风机-冰柜电机-罩极电机-外转子风机-EC直流电机厂家-杭州金久电器有限公司 | 破碎机_上海破碎机_破碎机设备_破碎机厂家-上海山卓重工机械有限公司 | 游动电流仪-流通式浊度分析仪-杰普仪器(上海)有限公司 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 电机保护器-电动机综合保护器-浙江开民| 微型气泵-真空-蠕动-水泵-厂家-深圳市品亚科技有限公司 | 美名宝起名网-在线宝宝、公司、起名平台 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 深圳市简易检测技术有限公司| 喷砂机厂家_自动喷砂机生产_新瑞自动化喷砂除锈设备 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 |