网络的爬虫项目的概要

网络的爬虫项目的概要

ID:29445917

大小:527.53 KB

页数:15页

时间:2018-12-20

网络的爬虫项目的概要_第1页
网络的爬虫项目的概要_第2页
网络的爬虫项目的概要_第3页
网络的爬虫项目的概要_第4页
网络的爬虫项目的概要_第5页
资源描述:

《网络的爬虫项目的概要》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Linux实训项目网络爬虫系统概要1、什么是爬虫是一个软件机器人,是可控的,可以可以从互联网上抓取我们所需的资源。爬虫是搜索引擎后台的第一个子系统,数据入口之一。2、爬虫能做什么搜索引擎的基础应用抓取大数据的一种手段网页下载器网店秒杀3、关于项目时间安排:4天关于需求、设计、编码、测试、集成需求:设计:分为业务设计和技术设计。业务设计是业务层的方案。对我们软件设计师来讲,业务就是我们的系统想要完成一个工作,要经过哪些步骤或流程。技术设计:关于框架和处理流程,注意要采用面向对象的思维方式。编码:使用基本的技术细节进行系统实现测试:对是对我们系统可靠性的一个监

2、测集成:将每个程序员开发的模块或子系统合成为一个完成的系统思维方式:线性思维方式与发散思维方式。软件开发要掌握的思想:模块思维渐进式开发4、需求:自动抓取网络资源的软件。1、资源是什么?网页、图片、音乐、视频等2、自动化是什么样子?一旦运行就不需要更多的干预。生成需求说明文档。内容:对需求中不明确或不完善的说明进行解释。功能点、附加要求、性能要求等5、设计业务设计:如何思考并完成设计?注意:从顶层开始思考并设计,避免过早的陷入细节。系统最粗浅的数据流设计处理流程:1、得到爬取种子(URL)2、根据爬取种子下载资源(页面)3、解析页面,提取更多的URL4、对

3、页面做持久化操作5、根据提取的URL再进行下载操作6、重复第2步到第5步系统设计:系统结构图注意:设计阶段必不可少设计可以使我们的思路更清晰,可以提高工作效率,可以提高代码质量。详细设计:注意:对系统或模块设计要有输入和输出。控制器模块控制器由三个模块组成:1、配置文件处理模块:从配置文件中读取配置项,提供配置项的提取接口2、URL维护模块:负责维护URL库,提供如下功能a)输入新的URLb)输出一个未被抓取的URLc)负责维护URL的抓取状态3、任务调度模块a)负责协调控制器的流程b)负责调用其他系统模块完成工作4、维护URL列表数据结构1、控制器设计配

4、置文件解析模块配置文件是以文件形式保存程序运行时必要的参数,减少输入时的繁琐过程。文件类型是文本文件,内容一般以键值对形式出现。概要设计:配置文件内容:key=value形式注释规则:注释字符串前以“#”标记。配置项设置:项目字段并发任务数job_numurl种子seed抓取深度deeps输出日志的等级log_level模块存放路径(唯一)Module_path模块名称(模块文件名,可以多个)Module_name允许抓取的资源类型(多个,文件后缀)file_type模块详细设计:操作:1、读取配置文件2、得到配置文件选项的值(键值)3、初始化//类设计伪

5、代码classConfigParser{public://共有成员函数(外部接口)ConfigParser();load();对应key的操作();操作1()操作2()….ptivate://私有成员变量job_numseeddeepslog_levelModule_pathModule_namefile_type//单体:};技术点:1、按行读取fgets2、分割字符串3、消除注释4、消除空格实现:(略)URL维护模块分析:url格式:http://192.168.40.150/docs/linuxdev.htmlwww.baidu.com=>ip结构:

6、域名或IP地址,路径,文件名设计URL的数据结构项目字段名称完整的URLurl协议类型protocal域名Sitename资源路径Path文件名Filename当前url处理状态(0-未抓取;1-抓取成功;-1–抓取失败)state当前url深度Deep当前资源类型Filetypehttp协议请求页面时的流程:1、输入网址2、向DNS发送解析请求3、DNS返回给我们一个对应的IP地址4、通过IP地址向资源所在的主机发送请求5、如果资源存在,主机返回200状态,同时返回数据部分6、本地http客户端(一般来说是浏览器)接收数据7、得到资源页面抓取的处理流程:

7、1、得到一个新的URL2、URL进入抓取队列等待抓取3、从队列中得到一个URL,把其分配给一个下载器的实例4、得到下载器的处理状态(URL处理状态需要被改写,得到当前URL深度,得到当前资源类型假如下载成功)5、得到当前页面中存在的下一级URL列表URL维护模块URL维护模块操作(对外接口):1、添加新URL2、使URL进入抓取队列3、从抓取队列中移除一个URL4、修改URL库中某一个URL的值5、添加新URL的列表classUrl{public://初始化//set…//get…private://urlprotocalSitenamePathFilen

8、amestateDeepFiletype}classUrlMana

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。