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

网络爬虫概念:是一个软件机器人,是可控的,可以按照一定的规则从互联网上抓取我们所需的资源。目前比较出名的开源爬虫有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、得到下载器的处理状态(URL处理状态需要被改写,得到当前URL深度,得到当前资源类型假如下载成功)
5、得到当前页面中存在的下一级URL列表

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

下载器模部分

下载器模块设计:下载器模块分为socket功能封装与Http功能模块,负责html页面的下载

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

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

解析器部分

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

持久化器部分

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值