版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目四
基于框架实现动态网页数据采集与存储Scrapy核心架构与工作机制贰(1)核心组件及功能组件名称核心作用ScrapyEngine(引擎)框架“大脑”:调度所有组件,传递请求/响应/数据,触发各环节执行(如从调度器取请求、给下载器发请求)Scheduler(调度器)请求“管家”:接收引擎传递的Request,按队列排序,去重后等待引擎调用(避免重复爬取)Downloader(下载器)请求“执行者”:接收引擎的Request,向目标URL发送HTTP请求,获取网页响应(Response)后返回引擎Spiders(爬虫)数据“提取器”:接收引擎的Response,用XPath/CSS解析数据生成Item(待存储数据),或生成新Request(爬取后续页面)ItemPipeline(管道)数据“处理器”:接收爬虫生成的Item,进行清洗(如去空格)、过滤(如删无效数据)、存储(如存文件/数据库)Middlewares(中间件)功能“扩展层”:分两类——①下载中间件:拦截下载器的请求/响应(如加代理);②爬虫中间件:拦截引擎与爬虫的交互(如修改Response)Scrapy由6大核心组件构成,各组件通过“引擎(Engine)”协调工作,组件功能如下表:贰Scrapy核心架构与工作机制(1)核心组件及功能贰(2)Scrapy项目结构Scrapy核心架构与工作机制贰01030405060702items.py字段定义文件scrapy.cfg项目配置文件middlewares.py中间件设置文件spiders爬虫文件存储目录settings.py项目设置文件pipelines.py项目管道文件MySpider.py爬虫文件Scrapy核心架构与工作机制Scrapy核心架构与工作机制贰(3)Scrapy项目构建流程6处理数据5解析响应4下载网页3分发请求2调度请求7循环爬取1生成初始请求贰完整工作流程(数据流转闭环)步骤1:生成初始请求(爬虫→引擎)触发者:Spiders(爬虫)核心动作:爬虫通过start_urls定义初始爬取URL(如新闻列表页:start_urls=['/lcjtww/445068/445237/index.html']),并自动生成对应的Request对象(包含URL、请求方式等信息),将其传递给ScrapyEngine(引擎)。作用:明确爬取的“起点”,为后续流程提供初始请求源。Scrapy核心架构与工作机制(3)工作流程贰Scrapy核心架构与工作机制(3)工作流程步骤2:调度请求(引擎→调度器)触发者:ScrapyEngine(引擎)核心动作:引擎接收爬虫传递的Request后,不直接处理,而是转发给Scheduler(调度器);调度器对Request进行两项关键操作:①
排序:按请求优先级(默认FIFO)加入请求队列;②
去重:通过“请求指纹(fingerprint)”识别重复URL(如同一页面的多次请求),过滤已爬取的Request,避免资源浪费。作用:管理请求队列,确保爬取有序、不重复。贰Scrapy核心架构与工作机制(3)工作流程步骤3:分发请求(调度器→引擎→下载器)触发者:ScrapyEngine(引擎)核心动作:引擎持续从调度器的请求队列中“取走”待处理的Request,并通过DownloaderMiddlewares(下载中间件)
传递给Downloader(下载器);下载中间件在此环节可拦截请求,添加“反爬虫配置”(如设置User-Agent伪装浏览器、添加代理IP)。作用:将调度后的请求传递给下载器,准备发起HTTP请求。贰Scrapy核心架构与工作机制(3)工作流程步骤4:下载网页(下载器→引擎)触发者:Downloader(下载器)核心动作:下载器接收Request后,向目标URL发送HTTP请求(GET/POST),获取网页的Response对象(包含HTML源码、响应状态码等);下载完成后,Response会再次经过下载中间件(如处理编码问题、过滤无效响应),最终返回给ScrapyEngine(引擎)。作用:获取网页原始数据,为后续解析提供素材。贰Scrapy核心架构与工作机制(3)工作流程步骤5:解析响应(引擎→爬虫)触发者:ScrapyEngine(引擎)核心动作:引擎将Response传递给Spiders(爬虫),爬虫执行核心的parse()方法,通过XPath/CSS选择器解析Response,提取两类关键信息:①
目标数据:将解析到的内容(如新闻标题、发布时间)封装成Item对象(需提前在items.py定义字段),传递给引擎;②
新URL:若存在“下一页”“详情页”等未爬取URL(如新闻列表页的“下一页”链接),生成新的Request对象(可通过yieldscrapy.Request(新URL,callback=parse)指定解析函数),传递给引擎。作用:从原始网页中提取有用信息,同时拓展爬取范围(生成新请求)。贰Scrapy核心架构与工作机制(3)工作流程步骤6:处理数据(引擎→管道)触发者:ScrapyEngine(引擎)核心动作:引擎接收爬虫传递的Item后,转发给ItemPipeline(管道);管道按预设逻辑对Item进行处理:①
数据清洗:去除文本空格、过滤无效字符(如“发布时间”中的乱码);②
数据过滤:剔除不符合要求的数据(如空标题、无效时间);③
数据存储:将处理后的Item存入目标位置(如JSON/CSV文件、MySQL/MongoDB数据库)。作用:确保数据的完整性、有效性,并实现持久化存储。贰Scrapy核心架构与工作机制(3)工作流程步骤7:循环爬取(新请求→调度器)触发者:ScrapyEngine(引擎)核心动作:引擎接收爬虫传递的“新Request”后,再次转发给Scheduler(调度器),调度器重复“排序、去重”操作,将新请求加入队列;引擎继续从调度器取请求,重复步骤3-6,直到调度器的请求队列为空(无新URL可爬),爬取流程终止。作用:实现“自动批量爬取”,覆盖多页面、多维度的数据。贰Scrapy核心架构与工作机制(3)工作流程流程简化记忆(口诀)爬虫生请求→引擎交调度→下载器取请求→响应回引擎→爬虫解析(出Item/新请求)→管道存数据/新请求循环关键核心:组件交互逻辑整个流程中,ScrapyEngine
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 唱歌 《要学那泰山顶上一青松》教学设计初中音乐沪教版九年级下册-沪教版
- IT科技行业云服务平台构建方案
- 心理咨询师精通心理测评与评估技术指导书
- 绿色建筑节能评估与施工规范手册
- 科学防溺水生命至上一年级主题班会课件
- 专业医疗团队医疗质量承诺书范文4篇
- 安全伴我成长小学主题班会课件:生命之光
- 财务成本控制报告模板多维度分析版
- 虚拟现实技术及其应用发展报告
- 小学主题班会课件:感恩与孝顺长辈
- 2025年湖南省综合评标专家培训考试题库及答案
- 农机售后管理办法
- 项目转产管理办法
- 2025年企业并购重组项目社会稳定风险评估报告
- 【国家】2024年国家工业信息安全发展研究中心招聘40人笔试附带答案详解析
- 消防控制室值班记录表
- 2023年无锡市中考道德与法治试卷
- 高脂血症患者用药护理
- 车间生产设备、工器具清洗消毒制度
- 2025年五类人员考试题及答案
- DB31∕T 8 2020 托幼机构消毒卫生规范
评论
0/150
提交评论