孙自立
(湖北国土资源职业学院 湖北 武汉 430090)
随着当下科学技术水平的快速发展,推动了大数据技术以及云计算技术的高速发展,与此同时许多行业领域每时每刻都在产生大量的数据信息,如何科学合理地处理这些规模庞大的数据信息,并从中获取到自身想要的有价值信息,逐渐成为了当下人们关注的重点。数据挖掘技术也正是在这样的背景下逐渐产生的,Python语言在数据挖掘领域中发挥了越来越重要的作用,并慢慢成为了应用较为广泛的数据挖掘工具之一。当下,Web信息已经进入到极速增长时期,要完成对海量信息的精准筛选以及合理运用具有相当大的技术难度[1]。Python属于面向对象的开源程序设计语言中的一种,相对于C语言、C++等其它编程语言来说,Python语言拥有更加简单的语法结构,同时由于该语言是依托于Guido van Rossum开发的,所以其拥有各式各样的库以及API[2]。科学合理使用其中的sklearn、pandas 与numpy等工具库,充分发挥Python语言的应用优势,可以显著改善Web数据挖掘的效率与质量,从而不断强化社会生产力。本文重点分析了Web数据挖掘路径与Python语言特征,探讨了依托于Python语言的Web数据挖掘和分析方法,进一步提高Web数据挖掘效率。
Python语言是当下产生的一种新型语言,基于第四代程序衍生而来,其主要面向的是交互性与解释性对象,在Web技术应用中发挥了十分重要的作用,并在当下有着十分广泛的运用[3]。比如说,程序开发人员在进行Google代码编写过程中就应用了Python语言,此外我国豆瓣网程序编写过程中也同样使用了Python语言。Python是一个应用十分便捷的脚本类语言,表现出非常良好的代码开发应用率,同时依托于对其第三方数据库的使用,能够基于简单代码产生优异的性能。相比较于应用十分广泛的C语言,Python语言中几乎不存在可读性代码,而当两者性能一样时,C语言中涵盖的可读性代码达到了20%。与此同时,Python语言应用的优势还表现在不需要花括号,或者当是begin…end…分割语句语块时,依托于Python语言中的冒号就可以实现代码的科学分层。比如说在编写条件语句ifTrue:print"Yes"时,ifTrue语句中使用的便是冒号,表明接下来的语句print属于下层语句,必须要匹配一定的条件才能够有效执行。
Python语言还拥有跨平台以及开源性的应用优势,将其与Web程序结合起来,可以进一步扩大Python语言的应用优势。该语言应用的WSGI模型是处于Python语言服务器范畴内,同时使用的程序以及中间层均是依托于官方标准,这种语言的主要缺陷表现为不能够有效支持异步模型[4]。当下,随着Python语言的迅速发展与广泛运用,慢慢变成了现阶段网络游戏领域的主流变成语言,逐步替换了之前广泛使用的C语言以及C++语言。
将Python语言应用到云计算过程中,能够促使绝大多数基层转向虚拟化层面。依托于云计算的应用,能够为使用者带来高质量的资源服务,主要包含了Saas/Paas/Iaas等[5]。比如说设计人员在进行易度Paas平台开发过程中,就将Python语言广泛运用到其中。Python能够依托于标准化数据库有效解决大数据库中容易产生的各种问题,科学合理的开展转化、分析等的大数据工作,紧接着分析与挖掘大数据特征与规律,同时表明其结构方式的有关需求。
Django在当下有着十分广泛的运用,是现阶段Python Web中主流的设计架构。该Web设计架构表现出开源性属性,通常包含了多种多样的组件,可以很好地实现对存储、界面以及映射关联性等性能进行动态管控。在进行Django开发过程中需要应用到DRY标准,并且还应当要拥有独立性与轻量级的Web服务器,还可以在较短时间内开发使用Web技术[6]。
Django开发中必须要依照MVC开发模式标准,主要包含了3个部分,分别为控制、视图以及模型。模型层属于架构应用的最底层,需要实现的主要功能是完成对各种数据信息的有效处理,例如,完成数据的验证与存储等工作。由于在Django当中使用者导入的控制模块全部需要借助于基础框架来完成,所以该部分被称之为模板层。模板层的主要工作职责是展现数据,同时保持与读取相关模板、完成对相关模板的合理调用等工作。设计人员在依托于模板语言开展HTML页面渲染工作时,基于模板展现出的不同数据信息,采取不同的模板能够得到不同的渲染效果。视图层在应用架构中具有十分重要的作用,属于应用程序的业务思维,主要功能表现为页面显示以及相关文档数据的体现等。
Django在实际操作过程中,一般基于以下步骤进行:(1)浏览器将HTTP请求发送到Web服务器。(2)当Web服务器成功接收到HTTP请求之后,会将其转送至运用Django。(3)Django发送相关指令要求中间层根据URLconf 模型完成匹配工作,并且给出适宜的映射函数;映射函数调用相关模板以及模型,依照实际需求给予有效的响应;紧接着中间层将该响应转化为HTTP响应,同时将HTTP响应反馈给Web服务器。(4)使用者浏览器成功接收到来自Web浏览器的响应。
CherryPy建立在Python面向对象的HTTP框架之上,主要为Python开发人员提供服务的。在实际运用CherryPy技术开展Web技术开发和设计过程中,由于CherryPy自身并不具备独立的语言体系,同时得益于CherryPy自身涵盖有内置Web服务器,所以使用人员不再要构建相关Web服务器,就可以依托于自身内置Web服务器实现程序的运行[7]。服务器的主要功能一般体现在以下两个方面:首先,依托于服务器能够实现对基础TCP的转化,将其套接字信息输送模式变化为HTTP请求,同时将请求发送到处理程序中。其次,依托于服务器实现对相关数据的封装,确保上层基于软件发送的数据转化为HTTP响应,同时为接下来一层的TCP套接字传输提供支持。
Flask主要使用在轻量级Web当中。该服务器网关接口使用的是Werkzeug,模板引擎所运用的是jinja2,Flask通过BSD来获得相关授权。值得注意的是,Flask自身不仅没有抽象的数据库,同时也未拥有评估表单的一般性能,而要实现这些功能,主要是借助于第三方数据库。Flask架构表现出良好的可拓展性能,可以较为便捷地增添相关功能。
现阶段,开发人员在进行脚本设计过程中会常常使用到Python语言,得益于Python语言的交互性、解释性与关联性优势,使得依托于Python语言完成的脚本代码程序表现出优异的可读性,并且运用该脚本语言完成的代码架构还能够进一步提高程序开发与程序维护的效率与效果。另外,从初学者的视角来看,Python语言脚本十分的简单且易懂,可以提高开发人员思维的活跃性,从而使得Python语言在较短的时间内成为现阶段十分流行的设计语言。
Web数据挖掘(Web data mining)最早出现在20世纪90年代中后期,是融合了数据挖掘技术和Web技术的产物,也被称之为知识发现。Web数据挖掘技术实现的主要功能是从Web网页中产生的海量数据信息中分析与整合出有价值的信息,紧接着依托于数据挖掘技术,从中寻找出隐藏在信息背后的数据信息,对得到的数据信息进行深入分析与探究,并依照数据表现出来的结果开展有根据性的预测与评估工作[8]。伴随着大数据技术以及Web技术的高速发展,Web数据挖掘在现阶段数据挖掘领域中占据了极其重要的地位,依托于Web数据挖掘能够进行用户行为的精准分析,利用分析与挖掘出有参考意义的规则。从长久眼光来分析,Web数据挖掘技术表现出了良好的商业价值与科研价值。图1为Web数据挖掘的具体流程图。
当下我国已经正式进入到网络时代,互联网的普及范围越来越大,网络数据资源的种类多种多样,并且数据资源规模也越来越庞大,然而绝大多数网络数据资源均是非结构化数据,这给数据信息的采集以及分类工作带来了非常大的挑战。在数据挖掘技术还未出现时,用户在进行数据信息收集与整合过程中,往往需要通过人工复制粘贴的方式进行,不仅会浪费大量的时间,同时获得的数据品质普遍较低,无法满足自动分析与数据收集需求。依托于Python语言的网络爬虫技术,表现出效率高、精准性好的优势,在强化数据收集与分析速度上发挥了重要作用,并且能够有效改善采集数据的质量。此外,依托于人工方式进行数据收集与分类,难免会出现数据遗漏或者数据错误等现象,而由于数据规模十分庞大,当出现某个数据错误时,要想纠正错误几乎不太可能。然而,通过运用网络爬虫技术,可以显著提高数据的准确性,即便出现问题,使用者也能够在较短时间完成问题的解决,表现出非常好的应用优势。
(1)广度优先方式。该种网络爬虫算法主要应用在Web目录部分。第1步爬取第1页相同级数的页面信息,紧接着在队列中引入爬取链接,并慢慢向外扩展,最大程度得到较多的链接信息,以此来达到强化抓取Web数据速度的目的,因此在实际应用网络爬虫算法中,广度优先方式具有非常好的实用性。然而该方式在深入挖掘目录信息时要花费较多时间。
(2)深度优先方式。该方式表示为网络爬虫依照既定顺序进行Web页面信息获取,一直到达最深层次目录,同时在完成某个分支的访问之后再转移到另一个分支上,直至访问完成所有链接,此时爬虫任务才正式结束。该方式能够实现爬虫信息的深入挖掘,然而在进行信息的深入挖掘时要占据大量的系统资源[9]。
(3)Partial PageRank方式。在该模式下爬虫爬取首页之后,根据Web层面上的Partial PageRank值来评估其潜在价值,同时优先爬取PageRank的最高值页面。该模式能够从整体层面提升爬虫效果,然而也存在数据精准性不高的问题。图2为脚本内容程序代码。
从工作原理视域来分析,Web Scraping位于网络的传输层,主要是依托于TCP协议以及Web服务器来实现相关数据的输送,应用层在和服务器开展数据交互时,需要建立在HTYP协议之上。从功能与价值视域来分析,该程序重点涵盖了两个模块,分别是HTML解析模块以及HTTP交互模块[10]。在实际进行抓取时,首先依托于交互模块将TCP连接传输至Web服务器窗口,当两者之间建立稳定的连接之后,交互模块会将GTTP申请输送到Web服务器窗口,交互模块在获取到服务器传输的应答报文之后将HTTP拆封,读取其中的HTML信息,紧接着依托于相关模块完成对数据的提取和分析,最后将获得数据格式化并存储到数据库中,也可以将其放置到结构单一的文本文件中。互联网是一个发展快速且规模庞大的数据库,同时涵盖的资源主要是无结构文本方式,导致在进行网络资源分析与归类时面临较大难度。
综上所述,依托于Python语言的网络爬虫技术在获取数据信息上具有良好的优势,能够自主完成个性数据的挖掘,最大程度改善分析和检索数据的品质。在实际开展数据爬取过程中,使用者应当要尽量使用优化后的数据爬虫算法,联系Python多线程技术,进一步强化挖掘数据的功能。