張珩
摘要:Python語言作為一種比較常用的計算機(jī)開發(fā)語言,已經(jīng)廣泛應(yīng)用于實際編程工作中,從整體看,Python最為突出的特點就是簡潔、類庫,將其應(yīng)用到平臺開發(fā)中可以突顯出極大的優(yōu)勢。本次研究主要以Python語言為主,分析了數(shù)據(jù)挖掘中的多種語言比較、Python下的數(shù)據(jù)爬取操作、基于Python的計算機(jī)軟件應(yīng)用技術(shù)以及基于Python的軟件測試自動化平臺的設(shè)計方案,希望可以為相關(guān)研究提供參考。
關(guān)鍵詞:Python;計算機(jī)軟件;應(yīng)用技術(shù)
中圖分類號:TP393? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)32-0096-02
隨著我國科學(xué)技術(shù)的不斷發(fā)展,尤其是在互聯(lián)網(wǎng)普及的今天,計算機(jī)編程語言也在逐步增多。而Python作為一種高級腳本語言,其融合了解釋性、編譯性、互動性等語言,受到了人工智能領(lǐng)域的廣泛應(yīng)用,同時Python具備開源性、門檻低、可移植性強(qiáng)、資源庫豐富等特點,在計算機(jī)領(lǐng)域已經(jīng)成為非常常用的編程語言之一,其中也涉及了Web開發(fā)在內(nèi)的多方面領(lǐng)域,Python語言都有著深入的應(yīng)用。由此可見,本文對Python的計算機(jī)軟件應(yīng)用技術(shù)探討,有著十分重要的意義。
1數(shù)據(jù)挖掘中的多種語言比較
從目前情況看,在計算機(jī)編程中會使用很多語言,較為常見的有PHP、Python、C++、Java等[1],這些語言都可以應(yīng)用到數(shù)據(jù)挖掘中,但體現(xiàn)的優(yōu)勢有所不同,下面對此進(jìn)行了簡單比較。
1.1 PHP語言
PHP語言具有其獨(dú)特的優(yōu)勢,主要體現(xiàn)在開發(fā)時間較少,并且需要的輔助資源不多,在支持性方面體現(xiàn)出了較大的優(yōu)越性,但如果在網(wǎng)絡(luò)爬蟲程序編寫時應(yīng)用PHP語言,也會出現(xiàn)一些不足之處,比如采用PHP所編寫的網(wǎng)絡(luò)爬蟲程序,在運(yùn)行速度方面要較為緩慢,此種情況會降低用戶使用時間,給用戶體驗造成不良影響。
1.2 Java語言
在數(shù)據(jù)挖掘中,通常會以網(wǎng)絡(luò)爬蟲的方式開展,其中部分技術(shù)人員就會采用Java語言編寫網(wǎng)絡(luò)爬蟲,運(yùn)用此種語言與Python語言相比較,在實際編寫的網(wǎng)絡(luò)爬蟲過程中,Java會使用更多的程序語言,并且需要較大量的代碼。可以說采用Java語言編寫網(wǎng)絡(luò)爬蟲相對要復(fù)雜些,這種復(fù)雜性也會對后續(xù)使用造成嚴(yán)重影響[2],例如,如果客戶需求發(fā)生變化,需要修改程序時,由于涉及的程序內(nèi)容會出現(xiàn)較多的變動,對重寫造成了嚴(yán)重影響。
1.3 C++語言
C++語言使用范圍非常廣泛,可以說,C++語言是C語言的延伸,在功能方面突顯出了較強(qiáng)大性,但也存在一定的不足之處,正是由于其強(qiáng)大的語言功能,所以學(xué)習(xí)難度非常大,這就會導(dǎo)致由于難度過大所以需要花費(fèi)較多的時間學(xué)習(xí)C++語言,同樣的,將C++語言用于網(wǎng)絡(luò)爬蟲的開發(fā),需要較長的編寫時間,難以提高編寫效率,所以在進(jìn)行數(shù)據(jù)挖掘過程中,不建議采用使用C++語言編寫網(wǎng)絡(luò)爬蟲。
1.4 Python語言
將Python語言應(yīng)用到數(shù)據(jù)挖掘中,突顯出了非常大的優(yōu)勢,使用Python來編寫網(wǎng)絡(luò)爬蟲程序,在其程序上就非常簡潔,并且代碼量少,使得編寫思路更加清晰,此外,可以在較為簡短的代碼中完成較多的操作,所以,在開發(fā)網(wǎng)絡(luò)爬蟲程序過程中,建議使用Python語言完成。
2 Python下的數(shù)據(jù)爬取操作
2.1工具配置
通過瀏覽器插件Switchy0mega,將設(shè)置的代理打開,而后127.0.0.1:8888此端口,便可以作為用戶使用的這臺計算機(jī)的代理,所以通過127.0.0.1:8888這個端口操作的軟件,都可以通過Fiddler實施攔截[3]。
2.2 爬取TT桔子網(wǎng)的流程
首先要打開Options對話框,而后在對話框中查找HTITPS,并對其勾選;接著找到右側(cè)的Actions,并對其進(jìn)行點擊,選擇對應(yīng)的信任證書。最后點擊Connections,并將Fiddller進(jìn)行重啟。找到瀏覽器,并在其中打開TT桔子網(wǎng)軟件,而后通過使用代理對TT桔子網(wǎng)實施訪問,此時會看到出現(xiàn)302錯誤的提示,這時則需要進(jìn)一步了解右側(cè)的HTTP協(xié)議,分析、總結(jié),最終找到訪問失敗的原因。
3基于Python的計算機(jī)軟件應(yīng)用技術(shù)
Python語言突顯出了極大的優(yōu)勢,將其利用到計算軟件應(yīng)用技術(shù)中,具體過程分析如下。
3.1創(chuàng)建對應(yīng)的文件
在建立相應(yīng)的文件夾時,可以根據(jù)scrapy-redis進(jìn)行建設(shè),在其中創(chuàng)建的文件夾可以分為三種,第一,主要是用來存儲所設(shè)置的爬取規(guī)則;第二,將需要爬取的內(nèi)容存放到文件夾中;第三,主要用于存儲所爬取的內(nèi)容。
3.2 信息爬取過程分析
綜合分析信息爬取過程,具體表現(xiàn)為以下幾個環(huán)節(jié)。
3.2.1獲取軟件
在獲取軟件中,可以先通過網(wǎng)絡(luò)爬蟲對數(shù)據(jù)URL實施搜索,而后將搜索到的數(shù)據(jù)與目標(biāo)數(shù)據(jù)進(jìn)行比較,從而進(jìn)一步明確其中有效的URL,并將這些后有效的URL放入資源庫中進(jìn)行列隊等候,而后取出URL,利用該地址搜索相應(yīng)的網(wǎng)站以及網(wǎng)址,獲取到其中的有關(guān)數(shù)據(jù)信息,并儲存到本地資源中,在獲取工作結(jié)束后,需要將使用之后的URL放入已使用的資源庫中[4]。
3.2.2存儲所獲得的信息
在URL作用下,對于搜索到的網(wǎng)站,應(yīng)當(dāng)全面分析頁面信息,并挑選出有價值的信息進(jìn)行存儲。計算機(jī)在正常使用過程中,對應(yīng)的電腦內(nèi)存都有限的,因此需要合理利用,秉持節(jié)約的原則,不能肆意占有內(nèi)存,所以,非常有必要對獲取到的信息實施全面篩選,不然會下載很多沒有價值的信息,從而增加用戶空間使用量,造成不必要的資源浪費(fèi)。因此,應(yīng)當(dāng)檢測獲取到的信息,在最大范圍內(nèi)獲取有用信息。此外,需要注意一點,如果在檢索信息過程中,當(dāng)大部分頁面出現(xiàn)大面積的雷同、抄襲等情況,完全可以略過該頁面。
3.2.3預(yù)處理過程
通常情況下,預(yù)處理指的就是對所獲取的信息進(jìn)行初步處理,通過初步的處理單獨(dú)提取出信息中的文字內(nèi)容,剔除掉頁面中的廣告、無用的信息,能夠完成對信息初期的簡單處理。
3.2.4分頁檢索能力
在實際操作過程中,如果用戶有request請求,那么能夠?qū)崿F(xiàn)對所獲取的信息的排序、去重等操作,最終達(dá)到用戶實際使用需求。
4基于Python的軟件測試自動化平臺的設(shè)計方案
通過上文對數(shù)據(jù)挖掘中的多種語言比較、數(shù)據(jù)爬取操作以及基于Python的計算機(jī)軟件應(yīng)用技術(shù)的分析,不難發(fā)現(xiàn),Python語言在計算機(jī)軟件實際應(yīng)用中突顯出了極大的優(yōu)勢,下文主要以軟件測試自動化平臺為例,具體分析了基于Python的軟件測試自動化平臺的設(shè)計方案。
4.1軟件測試
所謂軟件測試,指的就是對一個已經(jīng)完成的軟件系統(tǒng)實施功能測試,通過有效的測試,可以進(jìn)一步檢驗軟件的實際運(yùn)行質(zhì)量,也可以進(jìn)一步提升其有效性。根據(jù)檢測方法,分為手動和自動兩種測試,其中的自動測試主要利用相應(yīng)的測試程序?qū)浖嵤┥钊霗z測;而手動檢測采用的是鼠標(biāo)測試軟件運(yùn)行效果。無論是手動還是自動都在軟件檢測工作中發(fā)揮了重要作用,但相比于自動測試,手動測工作在技術(shù)方面還存在很多問題,再加上需要檢測大量的內(nèi)容,所以難免會出現(xiàn)問題和漏洞,此種方法對新人較為實用,但不利于提升員工責(zé)任心。但手動測試也具有一定的優(yōu)勢,其主要檢測的軟件業(yè)務(wù)邏輯,相比之下,自動測試則是檢測軟件的架構(gòu),在實際檢測中需兩者同時進(jìn)行。
4.2對于C#模塊的設(shè)計
在軟件測試自動化平臺構(gòu)建過程中,涉及了對C#模塊的設(shè)計,首先要知道C#模塊包含了文件、執(zhí)行、腳本編輯、實時信息共四個部分。其中的文件模塊主要引用了using System.10,從而實現(xiàn)了可以創(chuàng)建并讀取多種類型的文件,同時以更加方便地顯示界面為用戶提供服務(wù),有利于用戶保存。但需要注意的是,在控件使用過程中應(yīng)當(dāng)對“.Fi1ter”格式進(jìn)行更改,調(diào)整成為“.txt”格式,以此種方式促使文件可以具備一定的通用性,同時還能夠?qū)崿F(xiàn)快速選擇。當(dāng)打開文件后,采用逐行讀取數(shù)據(jù)模式對文件中的字符進(jìn)行添加,通過此種方法的運(yùn)用,可以在很大程度上減低字符串連接時的損耗。
而執(zhí)行模塊的主要作用就是控制系統(tǒng)的運(yùn)行,與此同時,能夠滿足將空間使用后生成的文件轉(zhuǎn)化為“.txt”格式。對于腳本編輯模塊,也涉及了3個空間。信息顯示模塊則涉及了2個控件,其一為TabContro,其二是TextBox,其中TabContro主要是在第2個分頁發(fā)揮作用,TextBox則屬于復(fù)合型控件,可以通過邏輯判斷顯示數(shù)據(jù)的輸出情況。
4.3 Python入口文件
TestSuiteExecutor.py文件就是Pythone入口文件,其不執(zhí)行工作指令,但可以為工作流當(dāng)單引擎,簡單說,可以理解為該入口文件只能初始化接收到數(shù)據(jù)參數(shù),而后經(jīng)過一定程序?qū)嵤┚唧w的工作。而Python的入口文件的主要任務(wù)是建立臨時目錄,同時進(jìn)一步解析命令行的邏輯問題,還有就是清除臨時路徑以及執(zhí)行工作流。其中臨時目錄主要指的是.py文件,而清除臨時路徑主要涉及了臨時目錄、子文件、文件夾等。
4.4 工作流的具體設(shè)計分析
基于Python的軟件測試自動化平臺,其工作流主要包含編譯工作流、重啟工作流、結(jié)果工作流、執(zhí)行工作流、輸出工作流五種。
4.4.1重啟工作流
其主要流程為:先進(jìn)入到臨時文件中;而后將臨時文件進(jìn)行重新啟動,在重啟操作中會體現(xiàn)出相應(yīng)選擇,如果選擇“否”,那么此工作流會立即結(jié)束,若選擇“是”則工作流會繼續(xù)執(zhí)行操作;讀取現(xiàn)場文件;讀取后刪除;工作流完成結(jié)束,在重啟工作流中主要是對os.path包中的現(xiàn)場文件進(jìn)行測試。
4.4.2 編譯工作流
在編譯工作流中,其執(zhí)行流程為:接受參數(shù)和賦值的變化,查看每一個用例文件并對其中的Case實施測試,而后將測試后的Case儲存到模板中,并以.py格式文件格式輸出。
4.4.3 執(zhí)行工作流
首先要接收參數(shù)和賦值的變化,而后發(fā)送cmd命令并控制編譯器,對.py文件格式進(jìn)行有效識別,并通過測試查看其異常情況,最后要輸出運(yùn)行結(jié)果文件。在發(fā)送cmd命令時需要利用os.system.進(jìn)行調(diào)用。
4.4.4結(jié)果工作流
在結(jié)果工作流中,主要就是讀取結(jié)果文件、以.xml格式對文件信息進(jìn)行編譯,而后添加.xm1節(jié)點到操作失敗的字符中,最終以.xm1格式輸出文件。
4.4.5輸出工作流
讀取.xm1文件并輸出相應(yīng)的數(shù)據(jù),同時顯示出沒有成功輸出的數(shù)據(jù)詳細(xì)情況,而后顯示每個用例的分析時間,最終輸出各數(shù)據(jù)在實時信息顯示模塊。
5結(jié)束語
總之,通過本文的分析,可以更加清晰地分辨出多種語言在數(shù)據(jù)挖掘方面的優(yōu)勢于劣勢??偟膩碚f,在計算機(jī)實際應(yīng)用中如果需要開展數(shù)據(jù)挖掘,一般情況會以網(wǎng)絡(luò)爬蟲的方法來進(jìn)行,通過對Python語言在編寫網(wǎng)絡(luò)爬蟲程序優(yōu)勢分析,不難發(fā)現(xiàn)其突顯出的巨大優(yōu)勢,所以,大多情況都會將Python作為編寫網(wǎng)絡(luò)爬蟲的首要語言。
參考文獻(xiàn):
[1] 胡正雨,劉文銳.Python的計算機(jī)軟件應(yīng)用技術(shù)研究[J].計算機(jī)產(chǎn)品與流通,2020,12(7):139-140,142.
[2] 傅駿,傅馨竹,王歡,等.Python在應(yīng)用型本科《傳輸原理》教學(xué)中應(yīng)用實例[J].科學(xué)技術(shù)創(chuàng)新,2019(17):48-49.
[3] 王學(xué)慶.基于Python的計算機(jī)軟件應(yīng)用技術(shù)研究[J].信息系統(tǒng)工程,2019(4):149-152,153.
[4] 秦軍.關(guān)于新時期計算機(jī)軟件系統(tǒng)開發(fā)與應(yīng)用技術(shù)的探討[J].電腦迷,2017(12):117.
【通聯(lián)編輯:光文玲】