基于Python 网络爬虫技术的海量教学资源获取研究

2024-01-22 10:01张海霞
太原城市职业技术学院学报 2023年11期
关键词:爬虫海量网页

■张海霞

(广州华南商贸职业学院,广东 广州 510000)

教学资源指的是在教学过程中,可被教学者利用的全部资源,包括教材、案例、影视材料以及课件、教学设施等[1]。当下网络教育逐渐普及,与此同时,网络教育的资源的种类和形式也越来越多,在进行教学过程中,如何高效、精准从网页中获取所需的教育资源[2],是教学过程中重点关注问题之一。

为更好的获取海量教学资源,刘孝保等人以多元神经网络融合为依据,提出相关的分布式资源分类方法。该方法依据多元神经网络对定性资源进行分类,为资源需求提供依据,但是该方法在应用过程中,当资源搜索页面比例较大时,资源获取不够全面[3]。网路爬虫技术是以某种规则为依据,自动实现网络中信息抓取的一种技术,该技术能够在网络大量信息载体中,可靠获取所需信息。Python 属于一种编程语言,其可提供高级的数据结构,并且,该语言在应用过程中,具有可扩展特点以及具有丰富的标准库[4],能够提供不同平台使用的源码和机器码,在软件扩展中,具有良好的应用效果。因此,本文以Python 网络爬虫技术为主,实现海量教学资源更好的获取。

一、海量教学资源获取

(一)海量教学资源获取方法框架

本文在进行海量教学资源获取研究时,对于海量资源的分布特性进行充分分析后,结合海量教育资源需求,研究基于Python 网络爬虫技术的海量教学资源获取方法,该方法整体框架由4 个端共同实现,分别为Wed端、服务端、Python 爬取端、存储端,通过Wed 端下达海量教学资源获取任务指令,服务端依据该指令完成教学资源获取任务的调度,同时对教学资源进行定位;Python爬取端依据定位结果,对海量教学资源进行爬取后,将爬取的海量教学资源输入存储端;存储端对爬取的海量教学资源进行聚类后,存储在不同的数据库中,实现海量教学资源获取。

(二)基于Python 网络爬虫技术的海量教学资源爬取方法

1.基于Python 的爬虫程序维护

Python 爬取端是海量教学资源获取的核心,该端主要依据基于聚焦爬虫技术实现海量教学资源的爬取,聚焦爬虫在运行过程中,其运行程序结构相对较为复杂,在执行海量教学资源爬取任务时,会发生运行程序错误的现象,导致爬虫的爬取效率和爬取结果的可靠性存在一定不足[5]。为了保证教学资源可靠爬取,本文基于Python语言维护爬虫程序。该维护整体包含两个部分,一是爬取程序异常数据获取;二是爬取程序维护,以此保证程序的稳定运行,在海量资源爬取时不会发生程序错误现象。

(1)爬取程序异常数据获取

获取聚焦爬虫技术在海量教学资源爬取时的异常数据,将该数据作为爬取程序维护的依据。如果爬虫爬取的一串完整、最长的教学资源信息字符中,n 表示该字符数量,此时,可利用Python 语言直接运行正向最大匹配,按照爬取顺序依次输出教学资源信息字符结果,其数量用m 表示。将这些字符看作是一个字符,将其和对应的爬取程序的爬取信息进行对比;如果两者之间匹配,表示聚焦爬虫技术爬取程序运行稳定,能够可靠完成海量教学资源爬取;如果两者不匹配,则表示爬虫程序在爬取过程中存在异常数据。上述爬取程序公式为:

式中:ip 表示聚焦爬虫爬取的教学资源所在的域名位置;if 表示Python 语言判别条件;i 表示爬虫的爬取次数;T表示教学资源网页更新时间;λ 表示资源爬取任务队列。

以聚焦爬虫的爬取顺序为参照,依据公式(1)可进行聚焦爬虫技术和爬取网页之间的匹配,如果匹配成功,进行下一个域名的匹配;如果匹配不成功,则获取异常数据,通过Python 语言实现网页的编译。重复上述步骤,实现全部网页的匹配。

(2)爬取程序维护

获取异常数据后,以此为依据构建目标函数,将获取的异常数据代入目标函数中,实现爬取程序的维护。在候选的教学资源页面网址(URL)中进行纠错,以资源分类标准、整个网页爬取资源为基础,对网页主体和爬虫爬取的资源之间的关联度进行判断。如果机器学习用o 表示,教育资源的有效性参数用μ 表示,爬虫程序中的任意数据用X 表示,对其实行关联度判断的公式为:

式中:S 表示爬取程序模型;C 本表示X 在随机情况下发生的变化概率;Z 表示数据有效性参数;P 表示教育资源的所属域名,且该域名位于爬取的网页中。PX(S│O)表示与爬虫爬取的资源之间的关联度,将关联度小于设定阈值的爬虫程序数据作为异常数据,表示为X′。

获取所有的异常数据X′后,结合教育资源网站域名的识别结果,校验异常数据的有效性,在该过程中目标函数的计算公式为:

结合上述内容,依据公式(3)目标函数校验异常数据有效性,获取定位的数据目标,实现爬虫爬取程序维护[6]。

2.海量教学资源流爬取方法

本文在进行教学资源获取时,教学资源也存在不同的类别体系,因此,在进行海量教学资源获取时,在上述小节维护爬取程序的基础上,完成网页中海量教学资源的爬取。由于Web 网页空间内的教学资源呈分散式分布情况,所以,爬虫在实现网页中海量教学资源爬取过程中,爬虫的爬取过程呈现未知状态,无法有效预测爬虫的爬取方向。基于此,本文引入蚁群算法对聚焦爬虫进行启发式指导,并以分类器体系结构为基础,形成基于蚁群算法的聚焦爬虫爬取模型。该模型是结合聚焦爬虫和分类器功能形成,聚焦爬虫的主要作用是爬取网页中的海量教学资源,分类器的主要作用是对网页进行分类,同时计算网页的关联度。该爬取方法结构见图1。

图1 基于蚁群算法的聚焦爬虫爬取模型结构

整个模型是由多个模块组成,分别为爬行子模块、资源定位评估子模块以及分类器子模块。爬行子模块的主要作用是连接其他两个模块,其可获取资源定位评估子模块中,资源定位链接子集中得分最高的教学资源定位结果,同时确定该定位结果对应的网页,并完成网页的划分;判断该网页是否为教学资源内容网页,如果是,则将该网页进行下载并输入分类器子模块中。分类器子模块则对该网页和教育资源主题之间的相关性进行判断,将其作为聚焦爬虫在网页空间内对教学资源爬取的指导依据。资源定位评估子模块依据获取的关联度结果,通过蚁群算法对聚焦爬虫的爬行过程中进行指导,实现海量教学资源爬取;获取海量教学资源样本集。

(三)海量教学资源自动聚类

完成网页中海量教学资源的爬取后,需对爬取的海量教学资源进行聚类,以此实现该资源的自动整理,提升资源的利用率。本文为保证海量教学资源的聚类效果,存储端采用最大最小距离加权密度的K-means 算法,聚类聚焦爬虫爬取的海量教育资源[7]。

该算法通过最大最小距离准则确定聚类中心,且在过程中,选取距离较远的教学资源样本点完成,并通过加权密度对该聚类中心进行选取,依据簇内和簇间资源样本距离的比值,确定聚类中心数量,进而完成爬取的海量教学资源聚类。该方法的聚类步骤如下。

输入:爬取到的海量教学资源样本集Y。

输出:海量教学资源聚类结果。

(1)将爬取获取的海量教学资源Y 输入结合最大最小距离加权密度的K-means 算法中,对Y 中所有样本点的平均距离w(yi,yj)进行计算,其计算公式为:

式中:dw(yi,yj)表示加权欧式距离,对应教学资源样本yi和yj之间,且在维度为m 的空间内;其计算公式为:

式中:l 表示l 第维空间;在该空间内的教学资源样本分别用yil和yjl表示;表示Y 中资源样本分布特征。

(2)y 表示Y 中的将任意资源样本点,将y 作为中心画圆,且圆的半径用R 表示;圆画成后,对其内存在的全部y 的数量进行确定,并将该数量结果作为y 的密度,用T 表示。

(3)计算所有样本点密度结果,并按照降序对计算结果进行排列,选择前个样本数据将其加入资源集合U 中;确定其中密度最大的资源样本点y1,定义其为第一个聚类中心,并将其划分值中心点集合C 中。

(4)获取U 中和y1之间距离最远的点y2,将其作为第二个中心点,同时划分至C 中。

(5)以最大最小距离准则为依据,计算剩余样本中的中心点,该点的数量用表示,将其结果同样划分至C 中。

(7)依据初始聚类中心点,依据欧氏距离将Y 中的其他资源样本点划分至距离最近的簇中,并计算此次聚类数量H(k)。

(8)对比所有K 的H(k)结果,H(k)值最小时,K 的取值即为最佳聚类数量。

(9)输出最佳聚类数量以及其对应的初始聚类中心点,并对其进行聚类,则实现聚焦爬虫爬取的海量教学资源聚类。

二、测试分析

为验证本文方法对于海量教学资源的获取效果,以某网络中的教学资源为例,进行海量教学资源获取,该网站中包含的教学资源有课件、图片素材、题库、音频文件、试卷素材共5 大类。

(一)爬取性能测试

为验证本文方法对网页中海量教学资源的获取性能,采用相对回报率R 作为评价指标,该指标能够衡量本文方法在进行教学资源爬取时的爬取性能,应用标准高于0.47;该指标的计算公式为:

式中:在t 时刻下,爬虫已经发现的相关教学资源主体页面比例用ψt表示、已搜索的页面比例用ξt表示。

依据公式(6)获取本文方法在不同的搜索页面比例下,对于5 大类教学资源爬取的相对回报率R 指标结果均在0.47 以上,是由于本文方法在进行教学资源爬取时,为保证资源爬取性能,采用Python 语言维护爬虫程序,避免爬取程序在爬取过程中发生程序错误现象,以此提升海量教学资源的爬取性能。

(二)海量教学资源聚类性能测试

为进一步验证本文方法对于海量教学资源的聚类效果,采用聚类纯度作为评价指标,该指标计算公式为:

式中:N 表示资源样本数量;Ω 表示实际聚类结果;wk表示第k 个聚类簇;C 表示资源实际类别;Cj表示第j类别。该指标取值范围在0~1 之间,其值越大,表示其聚类效果越佳。

依据公式(7)获取本文方法在指定资源类别和不指定资源类别两种情况下,聚类指标Pu=(Ω,C) 的测试结果,如图2 所示。由图2 测试结果可知:本文方法应用后,在指定资源类别和不指定资源类别两种情况下,随着聚类资源数量的不断增加,本文方法的聚类指标Pu=(Ω,C)结果均在0.92 以上,其中,在不指定资源类别时的指标值最高依据达到0.988 左右,聚类效果良好。

图2 聚类纯度测试结果

(三)海量教学资源获取结果测试

为验证本文方法对于海量教学资源获取的应用性,在指定教学资源和没有指定教学资源两种情况下,通过本文方法获取教学资源,其中,指定的教学资源为课件教学资源,测试结果可知:在指定教学资源类别的情况下,本文方法能够精准获取网页中的资源内容,在没有教学资源类别指定的情况下,本文依旧可完成网页内全部教学资源的获取,并完成获取资源的聚类,为资源利用提供可靠保障。因此,本文方法具有良好的应用性,满足海量教学资源获取应用需求。

三、结论

信息化教育的快速发展,教育资源库的建设基于教育资源的利用,已经成为核心问题。本文针对海量教学资源的获取展开研究后,提出基于Python 网络爬虫技术的海量教学资源获取方法,用于实现指定教学资源以及非指定教学资源的获取。对该方法的应用效果进行测试得出:该方法能够保证海量教学资源的可靠爬取,并完成不同类别教学资源的聚类,在非指定教学资源类别的情况下,依旧可完成海量教学资源获取。

猜你喜欢
爬虫海量网页
利用网络爬虫技术验证房地产灰犀牛之说
一种傅里叶域海量数据高速谱聚类方法
基于Python的网络爬虫和反爬虫技术研究
海量快递垃圾正在“围城”——“绿色快递”势在必行
基于CSS的网页导航栏的设计
利用爬虫技术的Geo-Gnutel la VANET流量采集
基于URL和网页类型的网页信息采集研究
大数据环境下基于python的网络爬虫技术
一个图形所蕴含的“海量”巧题
网页制作在英语教学中的应用