徐志 金偉
摘要:隨著信息化時(shí)代的到來(lái),互聯(lián)網(wǎng)信息量呈現(xiàn)爆發(fā)式的增長(zhǎng),如何在諸多復(fù)雜的信息中簡(jiǎn)單快捷的尋找到有效信息,而網(wǎng)絡(luò)爬蟲(chóng)的誕生能夠有效的解決此類(lèi)問(wèn)題,改善了信息檢索的現(xiàn)狀,本文通過(guò)概述網(wǎng)絡(luò)爬蟲(chóng)的原理,對(duì)Python爬蟲(chóng)技術(shù)進(jìn)行分析。
關(guān)鍵詞:網(wǎng)頁(yè)數(shù)據(jù);抓取;Python爬蟲(chóng)技術(shù);分析
中圖分類(lèi)號(hào):TP393.092? ? 文獻(xiàn)標(biāo)識(shí)碼:A? ? 文章編號(hào):1007-9416(2020)10-0000-00
0 引言
在互聯(lián)網(wǎng)的高速發(fā)展下,信息技術(shù)的完善與優(yōu)化,使得人們能夠了解各類(lèi)信息,包括新聞事件、各國(guó)歷史,遨游于動(dòng)物世界,了解動(dòng)物的新奇,暢懷于古往今來(lái),體會(huì)歷史的變遷。而隨著互聯(lián)網(wǎng)信息量的越來(lái)越大,對(duì)信息的收集也變得越來(lái)越困難,尤其是信息收集的準(zhǔn)確性大大降低,加上無(wú)效信息的干擾,用戶很難從多樣的信息中收集到想要的信息。而隨著對(duì)Python爬蟲(chóng)技術(shù)的改進(jìn)與優(yōu)化,能夠?qū)崿F(xiàn)對(duì)信息的準(zhǔn)確挖掘,以達(dá)到對(duì)龐大信息準(zhǔn)確檢索的目的,優(yōu)化用戶的網(wǎng)絡(luò)體驗(yàn),節(jié)約時(shí)間與精力。
1 網(wǎng)絡(luò)爬蟲(chóng)簡(jiǎn)介
1.1網(wǎng)絡(luò)爬蟲(chóng)原理
就網(wǎng)絡(luò)爬蟲(chóng)而言,其還有其他的稱(chēng)謂,諸如網(wǎng)絡(luò)機(jī)器人、網(wǎng)絡(luò)蜘蛛,也十分形象的體現(xiàn)了其在復(fù)雜的互聯(lián)網(wǎng)中收集各類(lèi)信息的特征[1-2]。作為搜索引擎的重要構(gòu)架,網(wǎng)路爬蟲(chóng)可進(jìn)行自動(dòng)收集,即能夠?qū)W(wǎng)頁(yè)數(shù)據(jù)進(jìn)行抓取。而其具體的運(yùn)行機(jī)制為,利用種子URL,并將其置入需抓取的URL中,然后提取需抓取的URL,在予以讀取、解析,并進(jìn)行相關(guān)下載。待相關(guān)網(wǎng)頁(yè)下載后,將其存儲(chǔ)于專(zhuān)有的網(wǎng)頁(yè)庫(kù)中,并使已經(jīng)下載的網(wǎng)頁(yè)URL置入已爬URL中。將已爬URL進(jìn)行處理分析,并將其中的URL設(shè)置為種子URL,將其置入需抓取的URL中,依次循環(huán)往復(fù)。就其簡(jiǎn)單流程而言,其一,利用URL抓取代碼;其二,根據(jù)正則匹配的方式提取相關(guān)信息;其三,對(duì)提取的信息進(jìn)行相應(yīng)的處理,并設(shè)置種子URL。
1.2網(wǎng)絡(luò)爬蟲(chóng)分類(lèi)
在網(wǎng)絡(luò)爬蟲(chóng)技術(shù)中,可區(qū)分為兩種類(lèi)別,其一,聚焦網(wǎng)絡(luò)爬蟲(chóng);其二,通用網(wǎng)絡(luò)爬蟲(chóng)[3-4]。就聚焦網(wǎng)絡(luò)爬蟲(chóng)而言,其運(yùn)行機(jī)制相對(duì)復(fù)雜,具有一定的特殊性,即搜索、采集的信息針對(duì)性較強(qiáng)。其有一個(gè)顯著的的特征,便是進(jìn)行實(shí)時(shí)抓取,能夠從龐大的信息庫(kù)中選擇準(zhǔn)確有效的信息。在聚焦網(wǎng)絡(luò)爬蟲(chóng)的作用下,可抓取、分析相應(yīng)的數(shù)據(jù),并且能夠清除無(wú)效的干擾網(wǎng)頁(yè),其過(guò)濾速度相對(duì)較快,運(yùn)行流暢。在清除掉毫無(wú)意義的URL地址后,收集并整理相似度極高的URL地址,并將其納入U(xiǎn)RL隊(duì)列中,然后對(duì)采集到的URL進(jìn)行處理與分析,下載相關(guān)網(wǎng)頁(yè)并設(shè)置URL種子,進(jìn)行下一步的信息抓取,在提取到準(zhǔn)確有效的主題信息后,即停止運(yùn)行。就通用網(wǎng)絡(luò)爬蟲(chóng)而言,其主要是在搜索引擎的輔助下,搜索、抓取相關(guān)網(wǎng)頁(yè)信息,然后在本地下載一份網(wǎng)頁(yè)信息,以達(dá)到信息的采集、存儲(chǔ)的目的。而其運(yùn)行流程主要為以下步驟,首先抓取網(wǎng)站URL,通過(guò)DNS解析獲取IP,再下載網(wǎng)頁(yè)信息。然后存儲(chǔ)網(wǎng)頁(yè),在搜索引擎的幫助下,獲得原始頁(yè)面的相關(guān)信息,判斷瀏覽器HTML、網(wǎng)頁(yè)信息之間是否有較大的差異,若差異較小,則可停止爬行。最后便是處理網(wǎng)頁(yè)數(shù)據(jù),在腳本、應(yīng)用程序的作用下,處理網(wǎng)頁(yè)數(shù)據(jù)的特殊文件、文字信息、相關(guān)連接等。
1.3網(wǎng)絡(luò)爬蟲(chóng)的應(yīng)用場(chǎng)景
由于網(wǎng)絡(luò)爬蟲(chóng)能夠檢索豐富多樣的網(wǎng)絡(luò)信息,其應(yīng)用范圍相對(duì)較大,適用性強(qiáng)。其不僅體現(xiàn)在搜狗、谷歌、夸克等搜索引擎中,還能夠用于輿論監(jiān)控、科學(xué)研究等項(xiàng)目中,在網(wǎng)絡(luò)搜索中其無(wú)處不在[5-6]。例如,就輿論監(jiān)控而言,在網(wǎng)絡(luò)爬蟲(chóng)的作用下,處理相關(guān)信息,從而了解網(wǎng)站的內(nèi)容、其內(nèi)容來(lái)源,并判斷網(wǎng)站是否受到攻擊,以及查詢用戶的來(lái)訪途徑,其訪問(wèn)途徑是否符合相關(guān)規(guī)定。就產(chǎn)品研發(fā)、網(wǎng)絡(luò)購(gòu)物而言,在網(wǎng)絡(luò)爬蟲(chóng)的作用下,其能夠采集網(wǎng)絡(luò)購(gòu)物平臺(tái)的相關(guān)信息,收集并處理商品的流通數(shù)據(jù),哪些商品比較受歡迎,同類(lèi)商品中哪種商品最受青睞,了解消費(fèi)者的購(gòu)物需求,從而為新產(chǎn)品的研發(fā)提供相關(guān)數(shù)據(jù),了解用戶對(duì)哪類(lèi)產(chǎn)品更加熱愛(ài),從而在此產(chǎn)品的基礎(chǔ)上進(jìn)行研發(fā),使新產(chǎn)品更受消費(fèi)者的青睞。就科學(xué)研究而言,在現(xiàn)階段的科學(xué)研究中,計(jì)算機(jī)與互聯(lián)網(wǎng)能夠發(fā)揮極大的作用,通過(guò)對(duì)網(wǎng)絡(luò)爬蟲(chóng)技術(shù)的應(yīng)用,能夠挖掘需要的信息,并分析相關(guān)信息,有助于處理數(shù)字化圖像、進(jìn)行大數(shù)據(jù)的收集甚至機(jī)器的學(xué)習(xí),網(wǎng)絡(luò)爬蟲(chóng)對(duì)科學(xué)研究具有重要的意義。以長(zhǎng)江水資源的審計(jì)調(diào)查為例,在長(zhǎng)江水資源審計(jì)調(diào)查中,運(yùn)用Python語(yǔ)言調(diào)用ArcGIS10.6中的ArcPy工具進(jìn)行空間分析,形成生態(tài)紅線內(nèi)建設(shè)和占用的疑點(diǎn),由原先分步處理,轉(zhuǎn)換為利用自動(dòng)化程序?qū)Φ乩頂?shù)據(jù)進(jìn)行批處理,極大的提高工作效率。從以上內(nèi)容可以得出,Python爬蟲(chóng)技術(shù)不僅僅能夠發(fā)揮信息收集的作用,對(duì)商品市場(chǎng)的發(fā)展以及科學(xué)研究都有較大的幫助,且能夠避免網(wǎng)站受到攻擊,對(duì)網(wǎng)站進(jìn)行有效的保護(hù)。
2 網(wǎng)頁(yè)數(shù)據(jù)抓取
2.1篩選技術(shù)
在網(wǎng)絡(luò)爬蟲(chóng)的篩選技術(shù)中,主要分為3種,以下為其具體的篩選技術(shù)。其一,Beautiful Soup。其屬于解釋器的一種,在HTML解析器的幫助下,以實(shí)現(xiàn)信息搜索的目的,還能夠處理網(wǎng)頁(yè)導(dǎo)航,能夠?qū)崿F(xiàn)對(duì)需要的信息的收集、篩選。就Beautiful Soup而言,快捷靈活是其顯著的特點(diǎn),其能夠在XML、HTML等文件中抓取Python庫(kù),從而對(duì)相關(guān)信息進(jìn)行篩選[7]。在簡(jiǎn)單代碼的作用下,即可實(shí)現(xiàn)Unicode 編碼的轉(zhuǎn)換,從而得到準(zhǔn)確有效的信息。其二,XPath 路徑語(yǔ)言。其主要是對(duì)XML文檔的部分語(yǔ)言進(jìn)行確定,適用于在樹(shù)狀結(jié)構(gòu)中定位并篩選某些信息,從而得到獨(dú)特的數(shù)據(jù)。XPath 路徑語(yǔ)言不僅能夠確定XML文檔的部分語(yǔ)言,還可對(duì)1XM1庫(kù)進(jìn)行標(biāo)簽,從而完成信息的提取并進(jìn)行導(dǎo)航,在對(duì)XML文檔進(jìn)行操作時(shí),應(yīng)該對(duì)1XM1的信息進(jìn)行導(dǎo)入,并使相關(guān)信息轉(zhuǎn)移至etree包,在抓取網(wǎng)頁(yè)數(shù)據(jù),包括文字信息、音頻、視頻等,在下載至本地時(shí)還需予以前綴進(jìn)行區(qū)分。其三,正則表達(dá)式。正則表達(dá)式的主要作用便是操作字符串,使字符串遵循一致的規(guī)則,然后篩選網(wǎng)頁(yè)數(shù)據(jù),由于正則表達(dá)式的特殊性,其能夠應(yīng)用獨(dú)一無(wú)二的元素替換提取的信息數(shù)據(jù),從而達(dá)到處理、篩選網(wǎng)頁(yè)數(shù)據(jù)中的文字信息、視頻信息、音頻信息以及圖片信息。在正則表達(dá)式的運(yùn)行步驟中,主要分為兩個(gè)步驟,第一步,提取相關(guān)的超鏈接、源代碼;第二步,對(duì)提取的超鏈接進(jìn)行處理,從而獲得準(zhǔn)確有效的數(shù)據(jù)。
2.2基本庫(kù)與第三方庫(kù)
就Python爬蟲(chóng)技術(shù)而言,其擁有種類(lèi)豐富的基本庫(kù)與第三方庫(kù),主要包括Threading庫(kù)、Urlib 庫(kù)、Beautiful Soup 庫(kù)等[8]。就Threading庫(kù)而言,其屬于內(nèi)基本庫(kù),利用該庫(kù)能夠進(jìn)行多線操作,由于其模塊眾多,功能性較強(qiáng),使網(wǎng)頁(yè)數(shù)據(jù)抓取與分析的速度更快,能夠在極短的時(shí)間內(nèi)完成網(wǎng)頁(yè)數(shù)據(jù)抓取與分析。就Urlib 庫(kù)而言,同樣屬于基本庫(kù),其主要有兩個(gè)作用,其一,負(fù)責(zé)對(duì)網(wǎng)頁(yè)數(shù)據(jù)的提取與解析,其二,負(fù)責(zé)對(duì)數(shù)據(jù)提取過(guò)程中,異常數(shù)據(jù)的處理。就Beautiful Soup 庫(kù)而言,與上述兩庫(kù)不同的是,其屬于第三方庫(kù),能夠處理XML、HTML的相關(guān)數(shù)據(jù),使復(fù)雜的數(shù)據(jù)更加的簡(jiǎn)潔,具有功能優(yōu)異、效率高、簡(jiǎn)潔等特點(diǎn),在網(wǎng)頁(yè)數(shù)據(jù)的抓取與分析中發(fā)揮著不可替代的作用。
2.3網(wǎng)頁(yè)數(shù)據(jù)抓取
首先是對(duì)requests、Python進(jìn)行安裝,了解計(jì)算機(jī)的操作系統(tǒng),從而選擇與之契合的Python,主要體現(xiàn)在版本的差異。在以上步驟結(jié)束后,便將Python輸入至命令提示符窗口,然后安裝requests,將PiP install requests輸入至命令提示符窗口。在安裝完成后,便可使用Python爬蟲(chóng)技術(shù),其分為網(wǎng)頁(yè)數(shù)據(jù)的搜索、抓取、分析處理,作為搜索引擎的重要構(gòu)架,網(wǎng)路爬蟲(chóng)可進(jìn)行自動(dòng)收集,即能夠?qū)W(wǎng)頁(yè)數(shù)據(jù)進(jìn)行抓取。就網(wǎng)頁(yè)數(shù)據(jù)的抓取而言,在Python解釋型腳本語(yǔ)言的作用下,以提取并篩選信息,然后顯示在屏幕上。就數(shù)據(jù)分析而言,在正則表達(dá)式的輔助下,并利用pyquery、beautifulsoup4、lxml等進(jìn)行數(shù)據(jù)的處理與分析。
3系統(tǒng)設(shè)計(jì)與分析
在Python網(wǎng)絡(luò)爬蟲(chóng)系統(tǒng)的基礎(chǔ)上,構(gòu)建新的系統(tǒng),主要主要提取網(wǎng)頁(yè)中的文字信息、音頻信息、視頻信息以及圖片信息。若進(jìn)行網(wǎng)頁(yè)數(shù)據(jù)關(guān)鍵字的查詢,可通過(guò)關(guān)鍵字檢索到想要的數(shù)據(jù)信息,并將獲得的數(shù)據(jù)轉(zhuǎn)移至數(shù)據(jù)庫(kù)中,然后將其下載至本地txt文件里,對(duì)相關(guān)信息進(jìn)行處理與儲(chǔ)存,然后繼續(xù)檢索。而系統(tǒng)需要符合以下八項(xiàng)要求,其一,在登錄網(wǎng)站時(shí),在不借助瀏覽器的情況下能夠進(jìn)行登錄,即在控制臺(tái)的輔助下,只需用戶名、對(duì)應(yīng)的密碼以及驗(yàn)證碼即可。其二,在登錄網(wǎng)站后,可獲取相關(guān)的代碼,能夠超越游客權(quán)限,從而提取網(wǎng)頁(yè)代碼。其三,收集并整理所提取的網(wǎng)頁(yè)數(shù)據(jù),在正則表達(dá)式的作用下,對(duì)收集的信息進(jìn)行處理,剔除無(wú)效或者多余的信息,從而使獲得的信息更加準(zhǔn)確有效。其四,具備選頁(yè)、翻頁(yè)選項(xiàng),在進(jìn)行實(shí)時(shí)的網(wǎng)頁(yè)數(shù)據(jù)的抓取時(shí),在控制臺(tái)的輔助下,能夠進(jìn)行選頁(yè)、翻頁(yè)等操作,從而提高信息抓取的效率,使提取的信息更加全面、準(zhǔn)確。其五,具備關(guān)鍵字查詢選項(xiàng),通過(guò)關(guān)鍵字的輸入,實(shí)現(xiàn)對(duì)信息的檢索,將檢索到的信息進(jìn)行下載。其六,能夠?qū)D片進(jìn)行處理,在檢索到用戶想要的圖片后,在將圖片儲(chǔ)存至本地文件的同時(shí),還能夠處理并分析圖片所包含的信息,并將信息提取至txt文件中。其七,能夠進(jìn)行準(zhǔn)確的分類(lèi),在收集到相關(guān)信息后,需對(duì)收集的信息進(jìn)行相應(yīng)的處理,分析信息的差異性,從而將其分為不同的類(lèi)別,以選擇與之契合的儲(chǔ)存路徑及儲(chǔ)存方式。其八,能夠儲(chǔ)存用戶信息,通過(guò)用戶的個(gè)人中心,收集與用戶相關(guān)聯(lián)的其他用戶信息,包括用戶的名稱(chēng)、用戶頭像以及用戶的背景圖片等。就Python爬蟲(chóng)技術(shù)的網(wǎng)頁(yè)數(shù)據(jù)抓取與分析而言,能夠滿足以上要求是必不可少的,網(wǎng)絡(luò)爬蟲(chóng)本身注重對(duì)網(wǎng)頁(yè)數(shù)據(jù)的抓取與分析,側(cè)重點(diǎn)在網(wǎng)頁(yè)數(shù)據(jù)的抓取與分析上,在用戶交互方面的功能上有所欠缺。
4 結(jié)語(yǔ)
隨著互聯(lián)網(wǎng)信息變得更加的多樣性、復(fù)雜性,爬取準(zhǔn)確有效的信息的難度也會(huì)越來(lái)越高,面臨著日益復(fù)雜的網(wǎng)絡(luò)環(huán)境,還需不斷的優(yōu)化Python爬蟲(chóng)技術(shù),使其對(duì)網(wǎng)頁(yè)數(shù)據(jù)的抓取與分析更加高效、快捷。
參考文獻(xiàn)
[1] 謝克武.大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)[J].電子制作,2017(9):44-45.
[2] 熊暢.基于Python爬蟲(chóng)技術(shù)的網(wǎng)頁(yè)數(shù)據(jù)抓取與分析研究[J].數(shù)字技術(shù)與應(yīng)用,2017(9):35-36.
[3] 李玉香,王孟玉,涂宇晰.基于python的網(wǎng)絡(luò)爬蟲(chóng)技術(shù)研究[J].信息技術(shù)與信息化,2019(12):143-145.
[4] 溫婭娜,袁梓梁,何詠宸,等.基于Python爬蟲(chóng)技術(shù)的網(wǎng)頁(yè)解析與數(shù)據(jù)獲取研究[J].現(xiàn)代信息科技,2020,4(1):12-13+16.
[5] 李培.基于Python的網(wǎng)絡(luò)爬蟲(chóng)與反爬蟲(chóng)技術(shù)研究[J].計(jì)算機(jī)與數(shù)字工程,2019,47(6):1415-1420+1496.
[6] 吳永聰.淺談Python爬蟲(chóng)技術(shù)的網(wǎng)頁(yè)數(shù)據(jù)抓取與分析[J].計(jì)算機(jī)時(shí)代,2019(8):94-96.
[7] 盧星.Python爬蟲(chóng)技術(shù)的特性及其應(yīng)用分析[J].中國(guó)新通信,2019,21(15):112-113.
[8] 望江龍,王曉紅.基于Python爬蟲(chóng)技術(shù)實(shí)現(xiàn)[J].電腦編程技巧與維護(hù),2019(9):18-20+41.
收稿日期:2020-09-15
基金項(xiàng)目:南京審計(jì)大學(xué)教改課題,“新商科”背景下基于數(shù)據(jù)驅(qū)動(dòng)的實(shí)驗(yàn)教學(xué)研究(編號(hào):2019JG050)
作者簡(jiǎn)介:徐志(1974—),男,安徽桐城人,國(guó)際注冊(cè)會(huì)計(jì)師,研究方向:審計(jì)理論與實(shí)務(wù)。
Python Crawler Technology Webpage Data Capture and Analysis
XU Zhi1,JIN Wei 2
(Audit Bureau of Jiangning District, Nanjing City, Jiangsu Province,Nanjing? Jiangsu? 211100)
Abstract: With the advent of the information age, the amount of information on the Internet has shown explosive growth. How to find effective information in many complex information easily and quickly, and the birth of web crawlers can effectively solve such problems and improve information The current situation of retrieval, this article analyzes the Python crawler technology through an overview of the principles of web crawlers.
Keywords: webpage data; crawling; Python crawler technology; analysis