王棟
(遼寧軌道交通職業(yè)學(xué)院,遼寧沈陽,110023)
在進(jìn)行計(jì)算機(jī)編程是的數(shù)據(jù)挖掘過程當(dāng)中,PHP 語言所主要展示出來的優(yōu)勢(shì)是現(xiàn)如今用于PHP 的開發(fā)時(shí)間非常少并且在進(jìn)行數(shù)據(jù)挖掘的過程當(dāng)中所需要的各項(xiàng)輔助資源也不是特別的多,而在對(duì)于計(jì)算機(jī)編程的支持性方面卻能夠體現(xiàn)出非常巨大的優(yōu)勢(shì)。但是在進(jìn)行網(wǎng)絡(luò)爬蟲的計(jì)算機(jī)程序編寫的時(shí)候使用PHP 也存在著一些缺點(diǎn)需要得到進(jìn)一步改進(jìn)。舉個(gè)例子來說,在使用PHP 語言來進(jìn)行編寫網(wǎng)絡(luò)爬蟲程序的時(shí)候,會(huì)使得軟件的運(yùn)行速度十分緩慢,這種情況會(huì)使得用戶在進(jìn)行使用的過程當(dāng)中時(shí)間花費(fèi)較多,進(jìn)而讓使用用戶有著非常不好的用戶體驗(yàn)。
在進(jìn)行計(jì)算機(jī)編程過程當(dāng)中的數(shù)據(jù)挖掘過程當(dāng)中,很多的程序員在進(jìn)行編程的過程當(dāng)中經(jīng)常會(huì)通過進(jìn)行網(wǎng)絡(luò)爬蟲的方式來進(jìn)行開展,在進(jìn)行使用網(wǎng)絡(luò)爬蟲的過程當(dāng)中一些技術(shù)人員會(huì)使用JAVA 語言來進(jìn)行編寫。使用這種計(jì)算機(jī)編程語言和Python 語言相比較來說,程序員在進(jìn)行實(shí)際編寫的過程當(dāng)中,使用JAVA 需要更多的程序語言來進(jìn)行輔助,并且在進(jìn)行編寫的過程當(dāng)中需要數(shù)量比較巨大的代碼。因此使用JAVA語言來進(jìn)行網(wǎng)絡(luò)爬蟲的編寫相對(duì)來說相對(duì)比較復(fù)雜,這些復(fù)雜操作對(duì)于后續(xù)的使用過程當(dāng)中也會(huì)造成非常嚴(yán)重的影響。比如說,在進(jìn)行編寫相關(guān)程序的過程當(dāng)中,當(dāng)客戶的需求發(fā)生變化過后需要對(duì)程序進(jìn)行修改的時(shí)候,就會(huì)使得對(duì)程序當(dāng)中的內(nèi)容進(jìn)行較多的修改變動(dòng),對(duì)于計(jì)算機(jī)程序的調(diào)整重構(gòu)會(huì)造成十分不良的影響。
C++語言其實(shí)可以算作是C 語言的一個(gè)重要延伸,其在計(jì)算機(jī)軟件的編寫過程當(dāng)中使用范圍是十分廣泛的,并且在編寫的過程當(dāng)中所具有的功能性方面也是也是具有著非常巨大的優(yōu)勢(shì),但是在其他的方面也還存在著一些不足之處。而就是由于C++語言所具有的強(qiáng)大功能性使得在進(jìn)行學(xué)習(xí)C++語言的時(shí)候的難度程度非常的巨大,使得需要花費(fèi)很多的時(shí)間去進(jìn)行相關(guān)的學(xué)習(xí),并且使用C++語言進(jìn)行網(wǎng)絡(luò)爬蟲的編寫相對(duì)其他來說也會(huì)需要比較長(zhǎng)時(shí)間的編寫時(shí)間,對(duì)于編寫的效率很難有一個(gè)大幅度的提高。所以一般情況下載進(jìn)行數(shù)據(jù)挖掘的過程當(dāng)中,通常都是不會(huì)去采用C++語言去進(jìn)行編寫網(wǎng)絡(luò)爬蟲的。
使用Python 語言進(jìn)行數(shù)據(jù)挖掘,具有非常突出的應(yīng)用優(yōu)勢(shì),因?yàn)橥ㄟ^使用Python 語言去進(jìn)行網(wǎng)絡(luò)爬蟲的編寫時(shí),其爬蟲程序具有簡(jiǎn)潔的優(yōu)勢(shì),并且在進(jìn)行編寫的過程當(dāng)中所需要的代碼量與前述語言相比較少,進(jìn)而在進(jìn)行編寫的過程當(dāng)中就會(huì)有著非常清晰的編寫思路。并且由于Python 語言所具有的簡(jiǎn)潔特點(diǎn),使得在進(jìn)行編寫的過程當(dāng)中可以讓其在最短的時(shí)間之內(nèi)完成更多的語言操作。所以在進(jìn)行網(wǎng)絡(luò)爬蟲的編寫過程當(dāng)中,更多的情況下都會(huì)使用Python 語言去進(jìn)行編寫。
對(duì)于使用Python 語言的數(shù)據(jù)爬蟲操作需要相應(yīng)的工具配置,首先需要使用瀏覽器的插件將相關(guān)的設(shè)置進(jìn)行打開,然后在找到127.0.0.1:8888 這個(gè)操作去進(jìn)行作為編程計(jì)算機(jī)的代理,然后后續(xù)的網(wǎng)絡(luò)爬蟲程序編寫就可以通過這個(gè)端口進(jìn)行編寫。
在進(jìn)行數(shù)據(jù)爬蟲的過程當(dāng)中首先第一步就是需要打開Options 的對(duì)話框,然后在所點(diǎn)開的對(duì)話框當(dāng)中去找到HTTTPS 進(jìn)行勾選,然后找到所能夠信任的信任證書。在完成了這些操作過后最后在點(diǎn)擊Connections 后將網(wǎng)絡(luò)爬蟲軟件進(jìn)行重啟。重啟過后就可以直接在瀏覽器當(dāng)中去打開桔子網(wǎng)的軟件,打開過后直接使用所編寫的代理端口去對(duì)桔子網(wǎng)進(jìn)行訪問,如果在進(jìn)行訪問的過程當(dāng)中出現(xiàn)了錯(cuò)誤的提示,那么問題就可能出在信任證書之上,需要對(duì)HTTTP 的協(xié)議進(jìn)行進(jìn)一步的了解和分析,找出其中代理協(xié)議當(dāng)中有可能出現(xiàn)的錯(cuò)誤,找到之所以訪問失敗的原因。
在進(jìn)行Python 語言的編寫過程當(dāng)中首先第一步需要做的就是建立一個(gè)相應(yīng)的文件夾,對(duì)于其所創(chuàng)建的文件夾主要可以分成三種的類型,首先第一種類型的文件夾是用于儲(chǔ)存在進(jìn)行編寫過程 當(dāng)中所設(shè)置的一些爬取的規(guī)則;第二個(gè)文件夾的主要作用就是為了用于去儲(chǔ)存進(jìn)行使用Python 語言所進(jìn)行爬取的相關(guān)內(nèi)容,最后一個(gè)文件夾則是為了能夠?qū)⑺廊〉膬?nèi)容進(jìn)行存儲(chǔ)和讀取。在創(chuàng)建好相應(yīng)的文件夾過后,緊接著所需要的就是進(jìn)行獲取軟件。在進(jìn)行獲取軟件的過程當(dāng)中,首先第一步可以通過使用網(wǎng)絡(luò)爬蟲對(duì)數(shù)據(jù)進(jìn)行搜索,然后在進(jìn)行搜索過后將所搜索到的相關(guān)內(nèi)容所所需要的目標(biāo)內(nèi)容進(jìn)行一一的對(duì)比,以便能夠?qū)⑵渲械挠行RL 進(jìn)行進(jìn)一步的明確,再進(jìn)行明確過后就可以將這些有效的URL 放入到對(duì)應(yīng)的資源庫當(dāng)中去進(jìn)行排隊(duì)將有效的URL 進(jìn)行取出,然后通過利用所得到的有效地址去進(jìn)行思索相應(yīng)的網(wǎng)站和網(wǎng)址,將其中相關(guān)的有用數(shù)據(jù)信息進(jìn)行及時(shí)的獲取,然后將這些數(shù)據(jù)信息儲(chǔ)存到本地的資源當(dāng)中。這樣在進(jìn)行獲取的工作結(jié)束過后就僅僅只是需要將所使用之后的URL 存入到已經(jīng)使用過的數(shù)據(jù)資源庫當(dāng)中去。在進(jìn)行創(chuàng)建獲取軟件過后,如果相關(guān)的搜索引擎能夠識(shí)別知道軟件的URL,那么就需要在進(jìn)行創(chuàng)建玩新軟件過后自主的相關(guān)相應(yīng)的搜索引擎去發(fā)送新軟件的相應(yīng)網(wǎng)址,這樣當(dāng)其他用戶使用相應(yīng)的搜索引擎進(jìn)行搜索的過程當(dāng)中就能夠直接在搜索引擎當(dāng)中搜索到相應(yīng)的軟件。并且一般情況下載很多的軟件最下端都會(huì)有著一些友情鏈接,比如在學(xué)校的官網(wǎng)上就可以將很多其他高校的鏈接和知網(wǎng)等等的鏈接在其最下端,所以還可以和一些軟件進(jìn)行相互協(xié)商,將自己軟件的網(wǎng)址通過使用鏈接的方式掛靠在其他的軟件之上。
3.2.1 存儲(chǔ)所獲取的信息
在進(jìn)行使用URL 進(jìn)行獲取數(shù)據(jù)過后,對(duì)于進(jìn)行所搜索的網(wǎng)站過后,需要對(duì)其中所搜索的數(shù)據(jù)信息進(jìn)行一個(gè)全面的分析,并將其中具有充分價(jià)值的信息進(jìn)行有效的存儲(chǔ)。但是計(jì)算機(jī)在進(jìn)行使用的過程當(dāng)中,一般情況下所使用的電腦的內(nèi)存都是極其有限的,所以在進(jìn)行存儲(chǔ)相應(yīng)的數(shù)據(jù)信息的過程當(dāng)中需要對(duì)電腦的存儲(chǔ)空間進(jìn)行合理的應(yīng)用,在進(jìn)行存儲(chǔ)的過程當(dāng)中一定要秉承節(jié)約的原則去進(jìn)行存儲(chǔ)相應(yīng)的有效數(shù)據(jù)信息,對(duì)于電腦的內(nèi)存不能夠進(jìn)行肆意的占用。因此對(duì)于所獲取到的相關(guān)信息一定要進(jìn)行全面的分析和篩選,將那些不具備下載價(jià)值的相關(guān)信息進(jìn)行剔除,避免讓用戶的電腦空間使用量大量增加,造成對(duì)資源的不必要浪費(fèi)。除此之外,在進(jìn)行獲取到了相應(yīng)的數(shù)據(jù)信息過后,在進(jìn)行檢索的過程當(dāng)中如果哦發(fā)現(xiàn)其中有很多的內(nèi)容都是雷同的,那么對(duì)于這些搜索界面就可以直接進(jìn)行忽略處理,但是在進(jìn)行獲取存儲(chǔ)信息的過程當(dāng)中一定要在最大的范圍去獲取相關(guān)的有用信息。
3.2.2 預(yù)處理過程及分頁檢索能力
預(yù)處理指的是在進(jìn)行網(wǎng)絡(luò)爬蟲的過程當(dāng)中需要對(duì)所獲取的信息進(jìn)行一個(gè)簡(jiǎn)單的初步處理,通過進(jìn)行處理的過程當(dāng)中將其中信息當(dāng)中的文字信息內(nèi)容提取出來,將在網(wǎng)頁當(dāng)中所蘊(yùn)含的各種廣告和其他的無用信息進(jìn)行處理,這樣就可以將所獲取的信息進(jìn)行一個(gè)簡(jiǎn)單的處理。在進(jìn)行實(shí)際的操作過程當(dāng)中會(huì)有著一些用戶有著request 的請(qǐng)求,那么就需要相關(guān)的程序員對(duì)所獲取的相關(guān)信息進(jìn)行及時(shí)的排序和去掉重復(fù)的部分操作,以便能夠有效地滿足相應(yīng)用戶的實(shí)際使用需求。
軟件測(cè)試指的是需要對(duì)一個(gè)已經(jīng)通過進(jìn)行計(jì)算機(jī)編程完成過后的計(jì)算機(jī)軟件完成過后需要對(duì)軟件系統(tǒng)進(jìn)行功能性的測(cè)試,通過進(jìn)行相關(guān)的有效測(cè)試來充分檢驗(yàn)所編寫出來的軟件在實(shí)際進(jìn)行運(yùn)行過程當(dāng)中的質(zhì)量。在進(jìn)行實(shí)際檢測(cè)的過程當(dāng)中,主要可以分為手動(dòng)檢測(cè)和自動(dòng)檢測(cè)兩種檢測(cè)方式。手動(dòng)測(cè)試主要是采用鼠標(biāo)測(cè)試軟件來對(duì)軟件的運(yùn)行有效性進(jìn)行測(cè)試,自動(dòng)測(cè)試則是主要對(duì)軟件進(jìn)行深度的測(cè)試。在進(jìn)行軟件測(cè)試的過程當(dāng)中手動(dòng)測(cè)試和自動(dòng)測(cè)試都是具有著非常巨大的作用,但是在實(shí)際進(jìn)行檢測(cè)的過程當(dāng)中在進(jìn)行手動(dòng)測(cè)試的過程當(dāng)中依然還是存在著很多的問題,并且在加上在進(jìn)行檢測(cè)的過程當(dāng)中還需要非常大量的檢測(cè)內(nèi)容,所以在進(jìn)行手動(dòng)檢測(cè)的過程當(dāng)中難免會(huì)出現(xiàn)各種各樣的問題。但是進(jìn)行手動(dòng)測(cè)試依然還是具有著一些巨大的優(yōu)勢(shì),因?yàn)槠湓谶M(jìn)行軟件檢測(cè)的過程當(dāng)中最為主要的還是去檢測(cè)軟件的業(yè)務(wù)邏輯,這種檢測(cè)更多的還是由手動(dòng)檢測(cè)才會(huì)具有著更多的優(yōu)勢(shì)。
在進(jìn)行軟件測(cè)試自動(dòng)化平臺(tái)的構(gòu)建過程當(dāng)中,需要對(duì)C#模塊進(jìn)行相應(yīng)的設(shè)計(jì)。其中在進(jìn)行設(shè)計(jì)的過程當(dāng)中,C#模塊主要是包括四個(gè)部分,分別是文件、執(zhí)行、腳本和實(shí)時(shí)信息。在這其中文件板塊主要是進(jìn)行創(chuàng)建并對(duì)各種類型的文件進(jìn)行有效的讀取,以便能夠?yàn)橛脩粼陲@示界面提供更加方便的服務(wù),讓用戶更加容易對(duì)相關(guān)的文件進(jìn)行儲(chǔ)存。但是在進(jìn)行控件的使用過程當(dāng)中需要特別注意對(duì)于其中的文件格式進(jìn)行及時(shí)的修改,將其調(diào)整為TXT 的文件格式,因?yàn)檫@樣的文件格式更加的具有通用性,并且能夠?qū)ξ募M(jìn)行及時(shí)快速的選擇。在打開文件過后,需要采用逐行進(jìn)行數(shù)據(jù)讀取的方式來對(duì)文件當(dāng)中的字符進(jìn)行添加,這種方法能夠使得在進(jìn)行構(gòu)建文件模塊的過程當(dāng)中盡可能地降低在進(jìn)行字符串連接的損耗。而第二模塊是執(zhí)行模塊在這其中主要的作用就是對(duì)系統(tǒng)的運(yùn)行進(jìn)行有效的控制??梢詫⒛軌驖M足其中需要使用的文件直接轉(zhuǎn)換為TXT 的格式。
4.3.1 重啟工作流及編譯工作流
進(jìn)行基于Python 的軟件測(cè)試自動(dòng)化平臺(tái)設(shè)計(jì)的過程當(dāng)中所主要包含的工作流失重啟工作流、編譯工作流、編譯工作流、執(zhí)行工作流以及輸出工作流這幾個(gè)重要的組成部分。首先重啟工作流的主要工作流程為首先進(jìn)入到臨時(shí)的文件當(dāng)中,然后在臨時(shí)文件當(dāng)中進(jìn)行重啟操作。當(dāng)然在進(jìn)行重啟操作的過程當(dāng)中需要操作者自己進(jìn)行做出相應(yīng)的選擇,如果在進(jìn)行重啟的過程當(dāng)中選擇否的話,那么整個(gè)重啟工作流將會(huì)直接立即結(jié)束,相反如果選擇是就會(huì)讓重啟工作流立即執(zhí)行下去,直到重啟工作流結(jié)束過后。第二個(gè)是編譯工作流其主要的過程是對(duì)相應(yīng)的參數(shù)去進(jìn)行賦值和變化,然后對(duì)每一個(gè)例文去進(jìn)行測(cè)試,將所進(jìn)行測(cè)試過后的結(jié)果直接儲(chǔ)存到模板當(dāng)中然后再將相應(yīng)的格式進(jìn)行直接輸出。
4.3.2 執(zhí)行工作流和結(jié)果工作流
對(duì)于Python 的自動(dòng)化平臺(tái)構(gòu)建當(dāng)中,最為重要的兩個(gè)工作流就是執(zhí)行工作流和輸出工作流。執(zhí)行工作流首先需要對(duì)參數(shù)和賦值的相關(guān)變化進(jìn)行接收,然后發(fā)出相應(yīng)的命令對(duì)編譯器進(jìn)行控制將文件格式是.PY 的格式進(jìn)行有效的識(shí)別,進(jìn)行識(shí)別過后還需要對(duì)這些進(jìn)行有效的測(cè)試看看是否會(huì)存在著異常的情況出現(xiàn)。在進(jìn)行測(cè)試的過程當(dāng)中需要將仿真系統(tǒng)所采集到的數(shù)據(jù)進(jìn)行有效的導(dǎo)入和分析,進(jìn)行分析過后將結(jié)果文件進(jìn)行輸出同時(shí)在需要使用相關(guān)的文件的時(shí)候再進(jìn)行發(fā)送相應(yīng)的命令去進(jìn)行將相關(guān)的文件進(jìn)行及時(shí)的調(diào)用。
結(jié)果工作流主要的作用就是對(duì)執(zhí)行工作流所輸出的結(jié)果文件去進(jìn)行有效的讀取,然后通過使用.xml 的格式將結(jié)果文件當(dāng)中的相應(yīng)信息進(jìn)行編譯,進(jìn)行編譯過后在將這些節(jié)點(diǎn)添加到前面進(jìn)行操作失敗的字符當(dāng)中去,進(jìn)行讀取編譯完畢過后再以.xml 的格式進(jìn)行有效的輸出。
4.3.3 輸出工作流
輸出工作流首先需要對(duì)結(jié)果工作流所輸出的.xml 文件當(dāng)中相應(yīng)的數(shù)據(jù)信息進(jìn)行讀取,并且需要將其中沒有有效輸出成功的數(shù)據(jù)進(jìn)行及時(shí)的反饋和展示,最后將所有的數(shù)據(jù)實(shí)時(shí)地傳輸?shù)叫畔⒌娘@示模塊當(dāng)中去。