APP下载

Python的计算机软件应用技术研究

2022-11-25孙艳梅

科学与信息化 2022年17期
关键词:爬虫C语言框架

孙艳梅

西安工商学院 陕西 西安 710200

引言

Python是一种基于Windows、Linux、UNIX、MAC OS等软件平台,用于开发计算机应用软件的计算机编程语言。此种编程语言最早有荷兰数学及计算机科学家Guido van Rossum在20世纪90年代初设计而成,彼时用于ABC开发语言的替代品。相较于其他已知的编程语言(如C语言、C++等),Python的数据结构更加高级、开发效率更高,且能够实现面向对象编程。近年来,随着Python版本的不断更新,其内加入了大量语言功能项,故逐渐被用于独立及大型项目开发。

1 Python开发语言相较于传统C、C++、Java开发语言的优势

1.1 C语言、C++、Java等语言的开发特性

C语言、C++、Java等计算机开发语言的核心特性在于:编程人员首先需要经过较长时期的学习,对这些开发语言的构成语法、机械性思维进行充分理解,否则便无法从事开发工作[1]。其中最基础、最具代表性的情况是(以C语言为例):在C语言开发架构下,计算机听从“机械性指令”。此种“机械性指令”是C语言的设计人员首先应该强迫自己的思维朝向计算机程序思维进行转化。如进制问题。在人类社会中,广为人知且广泛应用的进制即为十进制,即“逢十进一”。但在C语言最早期的版本,只有二进制,即“逢二进一”。在计算机程序的理解中,真正起到“计数”作用的数字只有“0”和“1”。其他的数字,从2到9也可以存在,但其存在意义与其他符号并无本质差异,即在计算机程序的认知中,除了0和1之外的数字不能算作数字。对很多编程初学者而言,在思考计算机程序理解方氏时,最容易犯的错误便是“思维混乱错误”。如上文描述性语句中多次提到了“数字”,但每一次出现的“数字”二字在具体的语境中存在不同的意义。如果存在理解困难,则可以按照下列方式进行理解,可以有效实现“思维转弯”。比如汉语成语“指鹿为马”原本形容秦二世统治时期,权臣赵高将一头鹿牵到宫城大殿,当着文武百官的面说“这是一匹马”。如果按照计算机程序的机械思维与人类大脑的智能思维,从“指鹿为马”的角度进行理解,可作如下解读:在人类社会中,被称之为“鹿”的一种动物,放到计算机程序控制算法中,则被命名为“马”。编程人员若要真正理解程序、编制能够使程序正常运转的算法,则必须抛弃人类社会的逻辑,而采用计算机的程序逻辑,真正认可“鹿”的存在。总体而言,以C语言、C++、Java为代表的编程语言需要一定的基础,否则无法入门。

1.2 Python语言的开发特性

Python的核心特性在于:此种开发语言具有“简单主义开发思想”。所谓“简单主义开发”,是指Guido van Rossum及后来的诸多计算机程序研发人员为Python开发语言设定了诸多开发功能,希望在“人类智能思维”以及“计算机机械思维”之间找到一个微妙的平衡[2]。换言之,应用Python,开发人员无需对某种功能的实现原理(即程序编写逻辑、机械语言的语法构成)进行充分研讨,儿只需要根据Python供的特定功能,通过具体的排列组合、模块构建,即可完成软件框架的搭建,相关功能便可实现。以五子棋小游戏开发过程为例。无论是在C语言框架下,还是在Python框架下,首先应该通过最基础的语言程序,完成游戏大框架(游戏规则)的设定,需要给出游戏区域(棋盘)、对战双方(黑白两种颜色的棋子)。在此基础上,确定具体的落子规则以及某一方的获胜判定标准。如“黑白两色棋子交替落下,每一次只能落下一子,当一方在横向、纵向、斜向有5个棋子连续排布时,则对应颜色棋子方获胜”。对于Python语言来说,只要明确上述思路,并在语言软件库内寻找能够实现上述功能的程序即可;而对于C语言而言,需通过if、while等语句、数组、指针等基础语言构建方法,逐字逐句完成程序控制算法的编写。至此便可以看出,Python与C语言相比,在便捷程度方面更高。但Python开发语言与C语言之间有较大的联系——Python的底层便是基于C语言编写而成,很多标准库和第三方库同样是用C语言写成,不仅运行速度较快,还因为有极其简单的说明文档的存在,令Python上手难度较低。总之,Python具备可扩展性、可嵌入性,开发程序难度较低,故获得了广泛应用。

2 基于Python语言开发计算机应用软件时的技术实现流程

2.1 开发软件的文件建立(后台框架搭建)

在Python语言框架下进行计算机应用软件程序编写时,首先应该完成对应文件的建立。此环节的意义在于,为后续需要爬取的文件内容选择作业打下基础。此外,还能够实现爬取内容的有效传输,完成爬取规则的定衣服与,最终为开发的应用软件建立良好的运行环境。一般而言,在文件建立环节,首先需要结合Scrapy-redis建立3个文件夹(注:Scrapy是Python下比较注定的爬虫框架,是为了爬取网站数据,提取结构性数据而由Python已经提前编写好的应用框架。在数据挖掘、信息处理、存储历史数据中均由较为广泛的应用。在该功能出现的早期,尽管应用Scrapy能够完成很多当程序功能的编写,但对大规模分布式框架搭建给予的支持相对不足。因此,研发人员逐渐对Scrapy的队列进行了适当的调度,将start_urls中的起始网址自其内分离而出,改成redis读取模式。至此阶段,在Python框架下,多个客户端能够同时围绕同一个redis进行读取,最终实现了分布式爬虫。不仅如此,即使在同一台电脑上,同样可以进行多进程爬虫运行,这在大规模抓取过程中能够起到非常好的效果),名称分别为Pachong.py、poprlines.py、settings.py。这三个文件夹的作用分别是:其一,Pachong.py是收纳软件端需要进行爬取的文件内容设置的应用文件;其二,settings.py主要收纳进行爬起规则定义的应用文件;其三,poprlines.py主要收纳通过管道实现页面爬取信息向数据库有效传入的支持文件。

为了使文件建立阶段功能健全且保证万无一失,需要准备的功能模块除了scrapy、scrapy-redis、redis之外,还需具备mysqlab模块。

需要特别注意,一些版本的Python语言开发软件中,由于redis模块可能只提供类linux环境安装支持,无法在windows操作系统下进行软件开发。如果待开发的目标软件需要使用mysql进行数据存储,那么针对Mysql进行配置便是不可或缺的环节,在安装完成后还需选取几个功能进行测试,能够自由调度后方可使用。

mysqladb模块以及redis模块的安装。在实际开发过程中发现一个问题,如果缺少mysqladb模块以及redis模块,那么受Python无法直接操作数据库这一特性的影响,后续很多功能在实现过程中,由于无法从数据库中直接调取函数,开发效率会大打折扣。完成上述工作之后,对三个主要文件夹进行梳理,可以清晰发现:里面已经存在2个爬虫,一个是用来爬所有的url地址,并将其传递给redis。而另外一个则是根据爬取出来的地址处理具体的商品信息。具体而言,在settings.py文件中,程序代码为:BOT_NAME=‘pbdnoXX(注,该词汇无实际意义,可以替换任何信息,根据开发的内容而定。在上述基础上,跟Scrapy一样,需写明spider的位置,且2个处理数据的pipeline中的类,数字越小优先执行。值得注意的是,因为数据要存放在mysql中,所以需要配置下mysql的信息。而redis是默认采用本地的,所以并没有配置信息,如果是连接别的主机的话,需要配置下redis的链接地址[3]。

2.2 软件抓取与应用

2.2.1 软件抓取。按照上文所述内容完成基本文件(夹)的建立并检测无误之后,需基于Python语言进行软件爬取和应用作业。其中,首先需要进行软件抓取作业。一般而言,该环节的实施需要建立在爬虫程序已经成功建立、目标搜索数据有关的URL能够自动筛选的基础上。之后,方可将自动筛选的URL资源在等待队列中予以存放。完成上述操作之后,研发人员需要对等待队列进行重点关注,完成对处于等待状态的URL资源进行抓取后,立刻对其域名进行解读,务必获得对应计算机的IP地址。上述操作全部完成后,便需将已经解读出的IP地址等信息下载到软件开发端计算机上,且务必存储到本地软件库中。

在上述软件抓取全过程内,必须注意下列几个要素:其一,爬虫程序自动筛选以及与目标搜索数据有关的URL必须放入已经被抓取的URL队列之中。其二,还应利用爬虫程序,重点针对这些程序在本地存储并且已经完成访问的URL队列信息(包含URL域名)进行解析。其他剩余的URL应该统一完成选取,最终同样放到等待抓取的URL队列之中。重复循环上述操作,最终完成对整个软件的抓取。

2.2.2 数据信息的存储与预处理。应用Python进行程序开发时,基于搜索引擎进行软件URL抓取时,还应该进行对应的分析。但需要明确的一个观点是:围绕分析过程中的数据进行收集、存储,考虑到本地存储空间可能会进行一定的限制,故很可能导致会重复检测一些内容。这个过程具有“双刃剑”属性。良好的一面为,对用户而言,一些无用的数据在收集分析的过程中,会被删除;另一些重要的数据可能会被多次分析,并不能被系统“记住”。基于这一实际情况,进行软件应用设计时,需要在数据爬取阶段同时开展筛选工作。比如一些基本功能性语句,或是一些通过大批量复制粘贴语句而形成的软件,可通过设置筛选条件的方式,将之直接排除在爬取数据以及常规文件之外。以此为基础,在后续进行筛选时,这些“垃圾”软件便会被及时识别,占用的本地存储空间会下降,可以保证数据分析以及爬取作业始终处于高效率的状态。Python语言开发过程中,预处理一般是指对页面中的文字信息中的有效部分进行提取,并完成对无意义文字信息的筛选。在此基础上,进行界面索引、分析处理时的系统效率会大幅度增加[4]。

3 结束语

综上所述,Python开发语言的实际应用过程中,由于系统编程功能模块已经提供了API接口,故可对程序编制全过程进行整体维护和随时管理。在Linux操作系统框架下,Python语言是诸多系统管理员最理想的编程工具。相较于C语言、C++等常规的开发语言,尽管Python具备很多优势,但由于采用“缩进”对语句关系进行区分,故会对很多初学者造成困扰。因此,现阶段,开发人员仍需要对Python的原理进行充分了解,方可编制出令人满意的程序算法。

猜你喜欢

爬虫C语言框架
利用网络爬虫技术验证房地产灰犀牛之说
有机框架材料的后合成交换
框架
基于Python的网络爬虫和反爬虫技术研究
“C语言程序设计”课程混合教学探索
浅谈框架网页的学习
基于Scrapy框架的分布式网络爬虫的研究与实现
基于C语言的计算机软件编程技术探究
谁抢走了低价机票
中职C语言单片机课堂教学中的趣味性探讨