基于Linux/C/C+的网络爬虫系统

发布于:2021-07-26 18:52:15

网络爬虫概念:是一个软件机器人,是可控的,可以按照一定的规则从互联网上抓取我们所需的资源。目前比较出名的开源爬虫有Labin、Nutch、Neritrix,详见:https://www.open-open.com/bbs/view/1325332257061
爬虫流程:
1、得到爬取种子(URL)
2、根据爬取种子下载资源(页面)
3、解析页面,提取更多的URL
4、对页面做持久化操作
5、根据提取的URL再进行下载操作
6、重复第2步到第5步

项目需求:自动化的从网络上抓取用户所需要的资源。


模块划分:主要分为控制器部分和下*鳌⒔馕銎鳌⒊志没鞯人牟糠


控制器部分

分为配置文件处理模块、URL维护模块和任务调度模块。
配置文件模块:是以文件形式保存程序运行时必要的参数,减少输入时的繁琐过程。文件类型是文本文件,内容一般以键值对形式出现,主要负责从配置文件中读取配置项,提供配置项的提取接口;


URL维护模块:负责维护URL库,进行URL入队、出队、去重,负责维护URL的抓取状态


http协议请求页面时的流程:
1、输入网址
2、向DNS发送解析请求
3、DNS返回给我们一个对应的IP地址
4、通过IP地址向资源所在的主机发送请求
5、如果资源存在,主机返回200状态,同时返回数据部分
6、本地http客户端(一般来说是浏览器)接收数据
7、得到资源


页面抓取流程:
1、得到一个新的URL
2、URL进入抓取队列等待抓取
3、从队列中得到一个URL,把其分配给一个下*鞯氖道
4、得到下*鞯拇碜刺║RL处理状态需要被改写,得到当前URL深度,得到当前资源类型假如下载成功)
5、得到当前页面中存在的下一级URL列表


任务调度模块:负责调用其他系统模块协调控制器完成工作。


下*髂2糠

下*髂?樯杓:下*髂?榉治猻ocket功能封装与Http功能模块,负责html页面的下载


Socket功能框架设计
1、初始化socket
2、向服务器发送请求
3、接受服务器反馈的数据
4、设置socket模式


HTTP协议处理模块
1、解析头
2、组装头


解析器部分

功能:负责解析html页面,提取url,将未抓取的url加入到待抓取url队列
html解析模块


持久化器部分

功能:负责将相应资源保存到本地磁盘
文本文件保存模块:保存html页面
二进制文件保存模块:保存图片等资源

相关推荐

最新更新

猜你喜欢