APP下载

基于Go 的多线程模块化爬虫框架设计与实现

2019-08-21刘国玺刘江徐海峰张雁吕丹桔

现代计算机 2019年21期
关键词:模块化页面

刘国玺,刘江,徐海峰,张雁,吕丹桔

(西南林业大学大数据与智能工程学院,昆明650224)

0 引言

随着大数据时代的到来,数据变得越来越重要[1]。在日常学习和科技研究中,往往需要大量数据支撑,然而数据获取并不是一件容易的事情。网络爬虫是人们最常用的一种获取网络数据的方式,网络爬虫是一个经过设计专门从万维网上下载网页并对网页进行分析的程序[2]。它将下载的网页和收集到的信息存储在本地用于研究和开发。网络爬虫的工作原理是从一个或若干初始网页的链接出发进而得到下一个链接队列的过程;伴随着网页的抓取又不断从抓取到的网页里抽取新的链接放入到链接队列中,直到爬虫程序满足系统中某一条件时停止[3]。爬虫脚本的实例多种多样,但基本流程都是请求HTML 页面、从页面中分析并保存需要的文本信息、URL 管理和下载静态资源。利用爬虫的有规律的特点,本文拟设计一个基于Go 的多线程模块化爬虫框架,能够提高网络爬虫的效率,可以在进行二次开发时,减少开发人员大量重复的代码编写,提高开发效率。

1 总体架构设计

基于模块化的思想,本文把爬虫业务抽象为三个大模块,即URL 管理、页面分析和文件下载。每个模块内部又抽象出一个或多个模块,每个模块只负责处理一项简单的事务,由一个或多个协程(goroutine)来负责执行,模块与模块之间采用专用数据通道(channel)传输数据[4]。此设计方案降低了模块间的耦合……

登录APP查看全文

猜你喜欢

模块化页面
微信群聊总是找不到,打开这个开关就好了
大狗熊在睡觉
刷新生活的页面
模块化自主水下机器人开发与应用
基于模块化控制系统在一体化教学中的应用
模块化住宅
ACP100模块化小型堆研发进展
从模块化中得到的二氧化碳
模块化VS大型工厂
同一Word文档 纵横页面并存