基于Python语言的Web数据挖掘与分析研究

2019-09-10 07:31杨迎
现代信息科技 2019年23期
关键词:Python语言

摘  要:现如今,互联网技术和大数据处于更新换代阶段,而在巨大数量数据库当中及时收集有用的信息便显得尤为重要。同时,这也是目前计算机技术领域迫切需要解决的问题。Python属于一类高级编程语言。通过多个角度对Python语言功能优势进行阐述,并对Python语言在挖掘Web信息中具体的应用方法进行分析,旨在发挥Python语言的潜在优势,进而完善与优化Web信息的挖掘和处理。

关键词:Python语言;Web数据;挖掘与分析

中图分类号:TP311.13      文献标识码:A 文章编号:2096-4706(2019)23-0063-03

Web Data Mining and Analysis Based on Python Language

YANG Ying

(Beijing Information Technology College,Beijing  100018,China)

Abstract:Nowadays,internet technology and big data are in the stage of updating,and it is especially important to collect useful information in a timely manner in a huge number of databases. At the same time,this is also an urgent problem in the field of computer technology. Python belongs to a class of high-level programming languages. This article expounds the advantages of Python language from multiple angles,and analyzes the specific application methods of Python language in mining Web information. The purpose is to make full use of the potential advantages of Python language to improve and optimize Web information mining and processing.

Keywords:Python language;Web data;mining and analysis

0  引  言

伴随着互联网技术发展速度的不断提升,Web作为一种互联网用户共享数据发展而来的Internet应用,所承担的信息量呈指数增长,Web的运用和发展给人们的现实生活与工作带来了很大的益处,已经成为用户获取所需数据的最佳途径。现如今,Web信息處于急剧膨胀阶段,要实现信息的有效筛选和运用面临着很大的挑战。并且Web内容的特征在于非结构性与多样性,使得数据的获取变得更加困难。借鉴Python技术来进行Web信息的提取与挖掘,能够在诸多领域发挥效用,进而促进数据的分析与搜集效率的最大化提高,进一步提高社会生产力。

1  Python语言的特征

Python语言属于一种新型语言,由第四代程序编制,所面对的是交互性及解释性对象,其使用Web技术和非Web技术所发挥的作用是无法比拟的。譬如,Google代码的编写就使用了Python语言,国内豆瓣网也运用了Python技术。Python不失为一类脚本型语言,其具有较高的代码开发率,通过对第三方数据库的运用,可利用对简单代码的阅读描述其强大的性能。

Python语言中很少有可读性代码,同样性能的代码C语言占据1/5。另外,还呈现在其无花括号或是begin…end…分割语句语块,运用Python语言之中的冒号能够将代码合理地进行分层,如书写的条件语句:ifTrue:print“Yes”当中的if语句尾端使用的就是冒号,显示第二行print语句即为下层语句,需满足相应条件才可以继续执行。

2  Python语言Web的运用

Python语言的另外一方面的优势就是跨平台和开源性,在使用了Web程序进行设计后优势更大。此种语言所使用的WSGI这一模型隶属于Python服务器范围,所运用的程序与中间层二者属于官方标准,其主要限制在于对异步模型不予支持。同时Python语言还逐渐变成网游行业编程流程中一种主流的语言,替代了原有的C/C++。

Python语言用于云计算中时,可以使大部分基层朝虚拟化的方向发展。云计算给用户提供了优质化的资源服务,其中涵盖了Saas/Paas/Iaas等等,譬如,易度Paas平台就使用了Python语言。Python可以运用标准化数据库对大数据当中出现的一系列问题进行妥善的解决,良好地处理、转换、分析大数据工作,最后提取大数据特点并将呈现其结构方式的相关需要。

3  Wed数据的设计框架

3.1  Django

Django属于常见的Python Web设计框架。其Web设计框架属于开源性,具体涵盖诸多组件,能够保证对储存、界面、映射关系等性能实施动态管理。开发Django使用了DRY原则,同时具备单独且立轻量级的Web服务器,并能够迅速开发运用Web技术。

Django设计需要遵守MVC模式的原则,具体涵盖三部分,如控制、视图、模型。模型层在使用程度的最基层,其重要责任就是对数据有关的事宜进行妥善处理,比如说数据的验证及储存等事宜。因Django当中用户输入的控制模块全权交由基本的框架进行处理,还被称作模板层。此层负责呈现数据,负责存取模板和对模板的合理调用等有关业务流程。程序专员在使用模板语言对HTML页面进行渲染的过程中,给模板体现出需要的数据,使用特殊的模板获取相应的渲染结果。视图层构成应用程序的业务思维,其重要责任就是体现页面或其他类文档之中的相关数据。

Django的操作过程:

(1)浏览器向Web服务器传送HTTP请求。

(2)Web服务器在接收到请求之后转至使用Django。

(3)Django请求中间层按照URLconf模型实施匹配及映射到合适的函数;此种函数使用模板和模型,按需求形成响应;中间层再把这种响应包装成HTTP响应,并将其退回至Web服务器。

(4)用户浏览器接收Web服务器发送的响应。

3.2  CherryPy

CherryPy鉴于Python面向对象的HTTP构架,适用于Python的开发者。使用CherryPy技术进行Web技术的开发运用与设计,但CherryPy没有提供相关的语言机制。其本身内置相应的Web服务器,用户不需要另外搭建Web服务器,就能直接运行于内置程序之中。服务器的职责:其一,转换基层TCP的套接字信息传输方式为HTTP请求,并传送至处理程序之中;其二,将上层由软件传送而来的数据封装为HTTP响应,并为下层的TCP套接字进行传递。

3.3  Flask

Flask适合应用于轻量级Web中。此类服务器网关接口正在运用Werkzeug,模板引擎也要使用jinja2,Flask运用BSD授权。Flask本身并不具备抽象的数据库与验证表单的基础性能,其依靠的是第三方数据库将相关工作妥善完成。Flask结构具有可扩展性特征,容易为其增加所需的功能。

3.4  Pyramid

Pyramid是一个开源构架,执行工作的效率非常高,无须花费大量的设计时间。其还包括Python/Perl/Ruby特征,以及快速的开发性能。

3.5  TurboGear

TurboGear需要建立在别的构架的基础上,其正试图集结框架的优秀部分。其可以让设计人员从简单的文件服务方面进行設计,慢慢延伸至全栈式服务。

3.6  Django与Pyramid、Flask的比较

Flask主要面向简单要求的小应用,即微框架,但Django与Pyramid则是面向一些大型功能。后二者具备不一样的灵活性与拓展性。Pyramid比较重视灵活性,设计者在具体的工作当中可以对使用工具进行合理的选取,比如说在URL结构、数据库、模板品质等选择流程中。Django为Web设计人员供应并设计了有效的处理方法,其涵盖诸多模板。

Django中涵盖单纯的ORM模块,设计Pyrami和dFlask的相关人员可自行选取存储数据的工具,ORM中SQLAIchemy属于很流行的一类模块,或选取MongoDB与Dynamo等。

Django属于一站式处理构架,设计者无须消耗很长时间应用于选择基础的设备构架方面。其涵盖管理基本的模

板、表单、路由、验证及数据库等内层的建设性能。Pyramid性能包含验证和路由,而管理模板和数据库应当运用需第三方即可完成,或是运用Pyramid和Flask才能有效运用和建设,只有设计人员自行构建选择,才能显得其更具灵活性。

4  基于Python语言Web数据的挖掘与分析

目前,Python语言在实践设计环节脚本的使用率最广泛,通过自身良好的交互性、解释性及面向对象有关特征,让Python语言使用脚本编写出的程度代码具有很好的可读性,同时使用此种脚本语言所编写的结构代码还可以使开发程序与维护程序变得更加高效。另外,Python脚本语言对于初学者来说,简单易懂的使用环境更具活跃性,这样才能让Python语言快速成为当前比较热门的设计语言。

4.1  挖掘web数据的定义

Web信息的挖掘又称挖掘Web信息、开发Web信息以及挖掘网络技术等,基于实质角度而言,指的是将挖掘数据与Web领域相结合后的新型技术产物。此种技术具体从大量芜杂网页数据中迅速获得与整理出高价值性数据,并通过对数据的转换、分析和处理模型,对信息进行有效的分析与处理,然后按照研究成果来预测与评估其实际情况,所以Web数据的挖掘具有很大的科研价值和商业价值。此外,挖掘Web数据主要利用模拟用户正常浏览的行为,并设置有效的规章,从而获得指定的Web数据页面。Web数据挖掘的最终目标就是将非结构化信息从大量信息中提取出来并通过综合CSV、JSON、XML等方法进行存储。在这样的流程当中,牵涉到数据化网络爬虫结构及正则表达技术。

4.2  应用挖掘数据技术的优势

伴随着我国互联网的不断普及与发展,网络数据资源逐渐丰富化,但多数信息以非结构形式存在着,使信息的采集和分类显得非常困难。在进行数据挖掘前,广大用户所采集与分类的信息需选用手动的方式进行复制粘贴,这样不但耗时耗力,并且数据的质量不高,无法实现自动化分析与收集数据。而基于Python语言的网络爬虫技术,优势在于准确高、速度快,可促进分析与数据采集效率的有效提高,从而提高采集而来的数据的品质。同时手动式操作无法避免发生数据遗漏以及错误数据的问题,在实际统计大量数据的过程中,具有很大的纠错难度,而借鉴网络化爬虫技术,数据的准确率就会大大提高,就算存在问题,用户也可以通过对程度的适当调整就能让完成纠错,具备不可比拟的应用优势。

4.3  比较不同的爬虫算法

目前网络爬虫的核心算法包含优先广度、优先深度、Opic、Partial PageRanK爬虫算法、不同的爬虫算法优势各有不同,需要将实际的应用场景结合起来进行合理的选择。

(1)广度优先措施。这种措施具体使用web内容中的目录级别,首先爬取首页同样级数的页面信息。然后将爬取链接置于队列之中,进而逐渐向外伸展,尽量获得更多链接的信息,提升抓取Web数据的速率,所以在爬虫算法中使用最广泛的就是广度优先措施。然而,这种计算方法的问题就是在对目录进行深层挖掘时需耗费大量时间。

(2)深度优先措施。此种措施指的是网络爬虫按顺序对目前Web页面进行直至最深层次的目录,并在完成一个分支的访问之后返回,之后爬到另一分支实施访问,待遍历全部链接之后,才算爬虫任务完成。这种方法能够对爬虫信息进行深层次挖掘,但在对深层站点消息进行挖掘中需要耗费很多的系统性资源。

(3)Partial PageRank措施。这种计算方式属于爬虫开始爬取首页后,按照计算Web层面上Partial PageRank的值确定爬取该页面的潜在价值,并优先爬取PageRank的最大值页面。进而促进爬虫效果的全面提高,还能得到很高的遍历效果,很但可能与具体的遍历结果偏差较大,进而降低数据的准确率。

(4)Opic措施。此种计算方式还能被当成完善后的一种PageRank计算方式,开始前阶段,各个页面都被赋予同等值,下载完待完成此页面之后,其最大值可以均匀地分配在链接页面上,爬虫依照该值的大小确定其优先级,并优先下载最大值页面。此种方法无须迭代计算,适用于具体的计算。

(5)数据储存的结构化。很多信息需要储存在非结构文本当中,要想直接分类和应用必定会非常困难,而通过结构化的储存方式进行储存,即为抽取Web页面上没有结构的信息,利用结构化方式存储于本地,从而将Web数据进行规范存储。该流程可以自动执行,无须人工干预,用户可以结合使用场景自主选择CSV、XML、数据库等储存方法。例如,使用数据库方程的储存方式时,Web数据以二维表结构方式实施存储,此种方式具有速度快、准确度高等优势,正好满足挖掘多线程信息中存储数据的需要。

(6)正则表达方式。Web页面通常以Html的格式存在,而Html页面主要由各类语义的对象组建,不同对象具有不同的标识,通过分析Html页面,并配置相應的正则表达形式,能够实现对指定字符串数据的有效查询和提取。比如,在爬取Web页面包括“is”数据源代码时,可通过matchObj=re.match(r(.*)is(.*?).*,line,re.MIre.I)的方法来提取信息。进而自行匹配包括“is”字符串并将相关内容进行输出。在此案例中,(r(.*)is(.*?).*,line,re.MIre.I)就是正则表达式的匹配,可以为提取数据供应有效方式。此外,为了符合网站页面的升级需要,保证稳定的匹配,客户可以自主运用Python语言带有的第三方数据库与相应模块,有效分析和提取Python页面上的内容。

4.4  Web Scraping的工作原理和作用

基于工作原理来讲,Web Scraping计算程序在网络传输层,具体利用TCP协议和Web服务器来传输数据,应用层需使用HTYP协议与服务器进行交互数据。基于功能角度来讲,此种程序主要分HTML解析与HTTP交互模块两个模块。在具体的抓取流程中,表示利用交互模块将TCP链接向Web服务器端口进行发送,待建设出有效的链接之后,交互模块才可以向Web服务器端口发送GTTP请求报文,交互模块接收服务器发送应答报文后将HTTP进行拆封,从中提取HTML信息,然后利用相应的模块对数据进行提取与解析,最后将提取数据通过格式化方式在数据库中储存或存储在简单结构的文本文件当中。Internet属于发展快速重大信息的数据库,这些资源存在的方式通常以无结构文本方式,这就给归类网络资源造成了很大的困难。

5  结  论

总之,本文重点分析基于Python语言来对Web数据的原理及方式进行挖掘,并对网络爬虫的计算方式特征以及应用使用环境进行分析,并就数据的储存方法、正则的表达方法、抓取数据的流程、分析方式等进行阐述。通过上述分析我们了解到,基于Python语言的网络化爬虫技术在抓取数据使用优势比较显著,可以自动提取个性数据,最大化提高分析与搜索数据的质量。在实际爬取数据中,用户应考虑调整过后和优化性的数据爬虫算法,与Python多线程技术进行结合,进而使下载缓存得到优化,提升挖掘数据的功能。

参考文献:

[1] 吴爽.基于Python语言的Web数据挖掘与分析研究 [J].电脑知识与技术,2018,14(27):1-2.

[2] 刘熠.基于Python的Web数据挖掘技术研究与实现 [D].荆州:长江大学,2018.

[3] 齐亚莉,张磊.基于Python的图像搜索系统的设计与实现 [J].北京印刷学院学报,2010,18(2):48-51.

[4] 黄雄伟.基于Web数据挖掘的客户行为分析研究及应用 [D].武汉:武汉理工大学,2011.

[5] 杨国志,江业峰.基于Python的聚焦网络爬虫数据采集系统设计与实现 [J].科学技术创新,2018(2):73-74.

[6] 李彦.基于Python的数据挖掘——阳光集团的具体数据挖掘项目 [J].电脑知识与技术,2018(2):15-20,36.

[7] 白雪丽.浅析基于Python爬虫技术的特性及应用 [J].山西科技,2018,33(2):53-55.

[8] 代广珍,徐超.基于Web的数据挖掘研究综述 [C]//2005年“数字安徽”博士科技论坛论文集.安徽合肥,2005:319-323.

作者简介:杨迎(1979-),女,汉族,北京人,讲师,硕士,研究方向:信息安全。

猜你喜欢
Python语言
关于面向非计算机专业开设Python语言的几点思考
计算思维培养视域下《Python程序设计》课程的教学改革实践
在高中信息技术课中培养学生计算思维的有效方法探讨
基于KNN算法的手写数字识别
Python语言教学中问题解决能力和创新能力的培养实践
Python语言程序设计教学体系建设
面向计算生态的Python语言入门课程教学方案
基于Python语言和支持向量机的字符验证码识别
论Python程序设计语言
基于Python语言的面向对象课程实践教学探讨