基于Python爬虫技术的网络目录更新程序设计

2020-02-22 03:09宋钰
现代信息科技 2020年18期

摘  要:为解决传统网络目录更新程序速率慢的问题,文章设计了基于Python爬虫技术的网络目录更新程序,运用GET方式自动解析预设网络目录参数,删除重复网络目录,转化最新得到的网络目录为EQ3格式,完成网络目录更新,实现EQ3网络目录格式更新程序的设计。通过PyQt编写程序界面得出结论:该程序更新网络目录平均耗时为1.568 s,对照组为4.896 s,该程序更新网络目录平均耗时低于对照组,更新速率更快,可以解决传统网络目录更新程序速率慢的问题。

关键词:Python爬虫技术;网络目录;更新程序;更新速率

中图分类号:TP311.1;TP393.092       文献标识码:A 文章编号:2096-4706(2020)18-0020-03

Abstract:In order to solve the problem of slow speed of traditional network directory update program,a network directory update program design based on Python crawler technology is carried out. Use the GET method to automatically parse the preset network directory parameters,delete duplicate network directories,convert the latest network directory to EQ3 format,complete the network directory update,and realize the EQ3 network directory format update program design. Through the programming interface of PyQt,it is concluded that the average time required to update the network directory of the design program is 1.568 s,and the control group is 4.896 s. The average time required to update the network directory of the design program is lower than that of the control group,and the update rate is faster,which can solve the traditional network problem of slow catalog update process.

Keywords:Python crawler technology;network directory;update program;update rate

0  引  言

網络目录作为网络的核心组成部分,能够将网络中的信息通过目录的形式集中展示,使用户能够对网络中包含的信息一目了然。由于网络目录对时效性有很高的要求,网络目录必须随着网络信息内容的变更及时更新,避免出现目录与实际内容不符的现象。因此,网络目录更新程序应势而生。以往的网络目录更新程序在应用过程中存在耗时长的缺点,无法快速处理格式多样的网络信息数据。Python爬虫技术作为能够自动捕捉网络信息的程序,在网络信息获取方面具有很大的优势[1]。随着Python爬虫技术的逐步成熟,其已经被应用到多个领域中,因此也可以将Python爬虫技术引进到网络目录更新程序设计中。本人在校期间曾有幸参与过该项目的实验,希望能够通过Python爬虫技术的高效信息获取功能,从根本上提高网络目录更新速率。

1  Python爬虫技术

Python爬虫又称网页机器人,能够根据用户在计算机上登录网页的记录,找寻对应网页的链接,可近似地看作一种网页追踪引擎[2,3]。网页机器人结合网络信息之间的内在联系,基于互联网进行页面的检索;同时利用爬虫指定程序,沿着联网的页面的资源定位符爬到其他页面,并重复这个过程,提取页面中重要的数据信息,依照相关算法对收集的数据进行计算,分析网络中关键词与链接之间的关联程度[4]。Python爬虫技术能够通过其独有的Beautiful Soup精准解读HTML文件,从中提取出有价值的关键信息。

2  基于Python爬虫技术的网络目录更新程序

基于Python爬虫技术设计的网络目录更新程序整体流程图如图1所示。

结合图1所示,下文将针对图中的3点主要流程进行详细设计。

2.1  自动下载网络目录

在网络目录更新程序设计过程中,首先预设网络目录下载参数,其中包括下载路径、数据类型以及目录类型等。之后登录网络,运用Python爬虫技术中的调度模块,分别为网络域名子模块、源代码下载子模块及网页链接提纯子模块,通过三个模块的相辅相成,自动下载网络目录[5]。具体工作流程如图2所示。

图2为Python爬虫调度模块的工作流程,初始化条件下的UML控制模块只有一个网络爬虫进入端口,此时可采用下载源代码子模块的方式对网页中源代码进行下载,结合网页中的对应链接对网页中关键字进行有效提取,并将提取后的链接、关键字放入UML控制面板中分析数据。基于Python爬虫技术中的GET方式将自动解析预设网络目录参数,此过程所需的程序代码如图3所示。

按照图3所示代码,即可自动解析网络目录,并将下载后的网络目录格式参数设置为通用格式文本,为下文操作提供方便。

2.2  重复网络目录删除

在获取下载的网络目录后,利用Python爬虫技术的URL管理器防止重复抓取URL和循环抓取URL,并删除重复网络目录[6]。基于Python爬虫技术的URL网络目录属性表如表1所示。

如表1所示,通过对被检测网页的具体描述实现网络爬虫对网页的获取,同时分析网页中是否存在重复信息内容,避免更新网络目录时出现重复目录。利用Python爬虫技术,将网页转换成一个字符串,能够有效解决文档复杂的问题,降低程序运行所需耗时。

2.3  EQ3网络目录格式更新

删除重复网络目录后,将最新得到的网络目录转为EQ3格式,更新EQ3网络目录格式[7]。EQ3网络目录格式具备信息描述精度高以及数据冗余值低的优点,能够满足网络目录对信息高度概括的需求[8]。选中所需更新的网络目录类型,点击Exit即可实现网络目录更新[9]。

3  应用实例

3.1  实验准备

本次应用实例选取某网络目录进行,程序可视化界面通过PyQt编写。实验操作系统为Windows XP/2000/2003/7/Vista,硬件设施包括上位机,CPU E5500@ 2.80 GHz;软件环境为ERTOS(Embedded Real-Time Operating Systems,ERTOS)操作系统,Platform Builder集成开发环境。此次实验环境设置的具体内容及参数如表2所示。

结合表2所示,实验内容为测试两种程序的更新耗时,更新耗时越短,证明该程序的更新速率越快。首先,使用本文设计的程序更新网络目录,通过Python爬虫技术自动下载网络目录更新所需参数,记录更新耗时。再使用传统程序更新网络目录,通过人工手动下载网络目录更新所需参数,同样记录更新耗时,并记录实验结果。

3.2  实验结果与分析

根據上述提出的实验步骤,将实验结果以表格的形式进行展示,实验数据对比表如表3所示。

根据表3可得出如下结论:本文设计程序更新网络目录平均耗时为1.535 s,而对照组为4.984 s,本文设计程序更新网络目录平均耗时明显低于对照组,更新速率更快,因此基于Python爬虫技术可以更高效地更新网络目录。

4  结  论

应用实例的分析结果表明,相比传统的网络目录更新程序,基于Python爬虫技术设计的网络目录更新程序速率更高,可广泛应用于网络目录更新方面。通过基于Python爬虫技术的网络目录更新程序设计,希望能够在确保网络目录更新精度的同时,提高网络目录更新速率,增强网络目录更新程序的综合性能。在后网络目录更新程序的发展中,应加大本文设计程序在网络目录更新中的应用,并将Python爬虫技术作为促进网络目录更新程序优化设计的关键技术,持续推进研究。基于此次研究时间有限,虽然取得了一定的研究成果,但对于该程序的研究仍不完善,今后还要对其进行进一步研究,为网络目录更新程序的进一步优化提供参考依据。

参考文献:

[1] 李玉香,王孟玉,涂宇晰.基于python的网络爬虫技术研究 [J].信息技术与信息化,2019(12):143-145.

[2] 毕森,杨昱昺.基于python的网络爬虫技术研究 [J].数字通信世界,2019(12):107-108.

[3] 王思敏,尹伊秋,宣静雯,等.基于网络爬虫技术的数字资源检测软件的设计与实现 [J].现代电子技术,2019(10):132-135.

[4] 温娅娜,袁梓梁,何咏宸,等.基于Python爬虫技术的网页解析与数据获取研究 [J].现代信息科技,2020,4(1):12-13+16.

[5] 李培.基于Python的网络爬虫与反爬虫技术研究 [J].计算机与数字工程,2019,47(6):1415-1420+1496.

[6] 邓世广,王月,马亚伟.基于Python爬虫技术的高精度地震目录更新程序的设计与应用 [J].中国地震,2019,35(3):541-549.

[7] 曹丙虎,张建新.一种基于串口通信的DSP程序更新方法 [J].科技视界,2019(34):111-112.

[8] 于倡和,兰巨龙,胡宇翔,等.距离矢量路由混合SDN网络的一致性更新 [J].中国科学:信息科学,2018,48(9):126-140.

[9] 曾晓娟.基于Python爬虫技术的应用 [J].办公自动化,2018,23(20):62-64.

作者简介:宋钰(1984—),女,瑶族,湖南郴州人,讲师,工程硕士,本科,研究方向:Python语言设计开发、计算机专业课程教学。