您的位置:首页 > 代理IP资讯
发布时间:2019-11-15 15:49:58
免费ip代理软件 Web在线爬虫设计与实现

2018          2018, Vol. 39, No. 9 39     COMPUTER ENGINEERING & SOFTWARE 国际 IT 传媒品牌 


Web在线爬虫的设计与实现 


(石河子大学 信息科学与技术学院,新疆 石河子  832000 

   : 为了方便免费ip代理用户简单高效的获取互联网数据,提出一种结合 Web 技术与爬虫技术的在线轻量级网络爬虫。该爬虫可在 Web 页面上进行配置,用户提交配置到远程服务器,服务器端爬虫程序进行数据抓取分析,最后由 Web 应用将结果返回到页面进行预览,同时支持生成数据结果接口 URL,方便用户调用服务器上爬虫程序爬到的数据。 

关键词: 网络爬虫;搜索引擎;Web 技术 

中图分类号: TP393.092    文献标识码: A    DOI10.3969/j.issn.1003-6970.2018.09.018 本文著录格式:韩前进. Web 在线爬虫的设计与实现[J]. 免费ip代理软件,2018399):86-92

Design and Implementation of Web Online Crawler

HAN Qian-jin

(Shihezi University, Shihezi Xinjiang, 832000, China)  

Abstract: In order to facilitate users to obtain Internet data simply and efficiently, an online lightweight web crawler combining Web technology and crawler technology is proposed. The crawler can be configured on the Web page, the user submits the configuration to the remote server, the server crawler program carries out the data capture and analysis, and finally returns the result to the page for preview by the Web application, and supports the generation of the data result interface URL, which is convenient for the user to call the data crawled by the crawler program on the server. Key words: Search engines; Web crawler; Web technology


0  引言 

随着信息社会的飞速发展,互联网已经达到了一个空前的规模。网络爬虫作为分析互联网有效数据的得力工具,同样也在不停发展。 

以往用户想要采集获得互联网数据,要么寻找开源的爬虫,要么自己写爬虫,再或者花钱请专业公司进行数据采集。无论是选择寻找开源的爬虫还是自己写爬虫程序,都需要进行安装软件,配置环境,安装依赖,学习使用等一系列步骤,对有基础的用户来说,这没什么大不了,但对于没有基础的用户来说,这无疑是一道坎。选择自己写爬虫程序时,还需要耗费大量时间与精力去编写代码与调试代码。花钱请专门的公司进行数据采集,除了增加开销之外,还可能面临数据时效性低的问题。 

Web 在线爬虫以期方便用户简单高效获得互联网数据。它结合了 Web 技术与爬虫技术。用户只需要安装一个浏览器,在配置页提交相关数据,即可调用服务器上的爬虫程序。用户通过 Web 应用提供的配置面板,将必要配置提交到服务器,服务器爬虫程序根据配置进行数据请求处理,最后将结果返回。用户在登录的情况下可根据数据抓取结果选择生成数据接口 URL,用户在自己的程序中请求数据接口 URL 得到数据,将获得的数据构造到自己的应用场景中。  

本文将对 Web 在线免费ip代理爬虫实现的实现原理、抓取策略、工作流程等进行分析介绍。 

1  Web 在线爬虫原理 

1.1  Web 在线爬虫实现原理简述 

                                          

作者简介: 韩前进(1996-),男,石河子大学信息科学与技术学院计算机科学与技术专业学生。

动态网站中相似网页的网页结构都是有规律的。以京东为例,京东网站的每个产品详情页中,分析页面结构,可以看到产品名称的类名为 sku- name。那么,如果想获得该产品的相关数据,用户只需给出目标网址,目标网页中数据所在的标签,使用标签选择器与属性选择器就可以得到该类名标签中的数据。根据这个特点,可以设计让用户自行观察网页结构,提供标签选择器与属性选择器,指定目标网页 URL 即可让爬虫抓取数据。 

Web 在线爬虫主要分为 Web 应用与爬虫程序两大模块。 

Web 应用是用户与爬虫程序之间“联络人”,负责中转用户调用爬虫的请求与返回爬虫处理后的数据结果。 

爬虫基于 Node.js 平台[1],使用 Superagent 请求初始页面 URL,获得整个网页,使用 Cheerio 根据用户配置中的标签选择器与属性选择器分析页面,得到目标数据。 

为了满足用户调用爬虫爬到的数据的需求, Web 在线爬虫支持生成数据接口,这是一个返回爬虫爬取数据的 URLWeb 应用负责与数据库交互,数据库保存用户的爬虫配置。生成数据接口时,将爬虫配置写入数据库,请求数据接口时,从数据库获得配置,将配置设置到爬虫中进行爬取数据。为了提高响应速度,可以将爬虫爬取结果保存到数据库中,设置定时任务,定时调用爬虫程序爬取数据,更新数据库。当用户请求数据接口,直接从数据库取出数据进行响应。 

1.2  Web 在线爬虫的结构 

Web 在线爬虫运行结构如图 1 所示。它分为用户、Web 应用、爬虫程序与互联网四大模块。用户发起调用爬虫请求,Web 应用接受请求并调用爬虫程序,爬虫向互联网发起请求,处理分析得到的数据之后,将结果递交 Web 应用,Web 应用将结果反馈给用户。 免费ip代理

  1  Web 在线爬虫运行结构 

Fig.1  Web crawler’s running structure

1.3  爬虫程序爬取过程 

爬虫程序获得目标数据的过程如图 2 所示。从一个或若干初始网页的 URL 开始,获得初始网页上的 URL,在抓取网页的过程中,不断从当前页面上抽取新的 URL 放入队列,直到满足停止条件。 

 

2  爬虫获得目标数据的过程 

Fig.2  The process of crawler achieves target data

 

1.4  爬虫程序获得中间 URL 

爬虫获得中间 URL 过程如图 3 所示,用户需要提供初始页面到目标页面的每一级 a 标签位置,以使得爬虫程序顺利找到目标页面。在目标页面,用户需要提供标签选择器与属性选择器以使得爬虫获得目标数据。 

2  爬虫抓取策略 

遍历策略[2]是爬虫的核心问题。在爬虫系统中,待抓取 URL 队列是很重要的一部分。待抓取 URL 队列中的 URL 以什么样的顺序排列也是一个很重要的问题,因为这涉及到先抓取哪个页面,后抓取哪个页面。决定这些 URL 排列顺序的方法,叫做抓取策略。 

爬虫策略主要有以下几种: 

(1) 深度优先遍历策略: 

深度优先遍历测试是指网络爬虫会从起始页开始,一个链接一个链接跟踪下去,处理完这条线路的链接之后,在再转入下一个起始页,继续跟踪链接。 

 

3  爬虫获取中间 URL 的过程 

Fig.3  The process of crawler achieves middle URL 

 

深度优先策略不一定能适用于所有情况,深度优先如果误入无穷分枝(深度无限),则不可能找到目标节点 

(2) 广度优先策略 

广度优先策略是按照树的层次进行搜索,如果此层没有搜索完成,不会进入下一层搜索。即,首先完成一个层次的搜索,其次在进行下一层次,也称之为分层处理。 

广度优先遍历策略属于盲目搜索,它并不考虑结果存在的可能位置,会彻底地搜索整张图,因而效率较低,但是,如果尽可能的覆盖较多的网页,

广度优先搜索方法是较好的选择。(3)部分的 PageRank 的策略 

对于已经下载的网页,连同待抓取 URL 队列的 URL,形成网页集合,计算每个页面的 PageRank 值,计算完之后,将待抓取队列中的 URL 按照网页级别的值的大小排列,并按照顺序依次抓取网址页面。 

4OPIC(在线页面重要性计算)策略: 

在算法开始前,给所有页面一个相同的初始现金,当下载了某个页面 P 之后,将 P 的现金分摊给所有从 P 中分析出的链接,并且将 P 的现金清空。对于待抓取 URL 队列中的所有页面按照现金数进行排序。 

OPIC PageRank 的区别在于:PageRank 的的的每次需要迭代计算,而 OPIC 策略不需要迭代过程所以计算速度远远快与 PageRank 的的的,适合实时计算使用。 

Web 在线爬虫系统采用广度优先搜索算法,用户在提供的配置面板中配置从初始页面到目标页面搜索路径,有效避免了广度优先搜索的盲目搜索问题。 

广度优先搜索是一种简单直观且历史悠久的遍历方法。Web 在线爬虫通过一个或一组 URL 为初始页面,通过用户指出的每层的 URL(用户给出 a 标签选择器,利用 cheerio 分析 HTML 标签即可获取

URL),逐层向下请求分析搜索,直到得到目标数据。 

爬虫的广度优先搜索路径如图 4 所示,程序首先会从初始页面中分析获得所有到目标页面的一级 URL,然后依次请求一级 URL,得到网页数据,进行分析之后,再得到二级 URL,再进行请求分析... 请求分析到目标页面停止,此时在目标页面运用标签选择器与属性选择器即可获得目标数据。 

  4  爬虫的广度优先搜索路径 

Fig.4  The path of crawler’s breadth-first search 

  

3  Web 免费ip代理在线爬虫的工作流程 

(1) 用户发起 URL 请求,Web 应用响应 Web 在线爬虫配置面板 

(2) 用户提交爬虫配置,Web 应用将配置递交爬虫程序 

(3) 爬虫程序根据递交的配置,进行数据请求,处理分析,最后将处理结果递交 Web 应用 

(4) Web 应用将结果返回用户 

(5) 数据符合用户需求,用户发起生成数据接口请求 

(6) Web 应用判断用户是否登录,如果登录,数据库保存用户提交的爬虫配置,与数据处理结果,如果没有登录,返回登录提示。 

(7) 程序定时请求从数据库获得爬虫配置,调用爬虫程序,获得结果数据后,更新数据库中结果数据,保持数据库数据“新鲜” 

(8) 用户调用数据接口,Web 应用取出数据库数据进行响应 

4  Web 在线爬虫实现 

4.1  技术储备 

Web 在线爬虫后端采用 Node.js 平台,原因是 Node.js 轻量,生态丰富。前端使用 Vue 框架进行页面搭建。 

采用 Koa.js[3] Web 开发框架。它具有轻量、表现力丰富、健壮的特点。 

采用 Superagent<span style="font-

上一篇 下一篇