我是靠谱客的博主 含糊小蝴蝶,最近开发中收集的这篇文章主要介绍基于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页面
二进制文件保存模块:保存图片等资源

最后

以上就是含糊小蝴蝶为你收集整理的基于Linux/C/C+的网络爬虫系统的全部内容,希望文章能够帮你解决基于Linux/C/C+的网络爬虫系统所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部