概述
网络爬虫概念:是一个软件机器人,是可控的,可以按照一定的规则从互联网上抓取我们所需的资源。目前比较出名的开源爬虫有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+的网络爬虫系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复