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