徐亮亮
(常州鐵道高等職業(yè)技術學校,江蘇 常州 213011)
隨著網(wǎng)絡科學技術的不斷發(fā)展,我們的生活被各種媒介包圍著,也在各個方面得到數(shù)據(jù)網(wǎng)絡的支持。而經(jīng)過網(wǎng)絡采集的系統(tǒng)數(shù)據(jù),人們對于容量極其龐大的互聯(lián)網(wǎng)世界,也越來越追求其所帶來的時效性的應用價值。
采集是進行大數(shù)據(jù)處理的最基礎的一個環(huán)節(jié),但也同樣是所有后續(xù)信息進行分析挖掘的基礎前提。所以做好數(shù)據(jù)信息的采集可以為數(shù)據(jù)的深入價值提供優(yōu)質的條件。對數(shù)據(jù)信息的采集的方法和過程由于信息種類的不同,也會有所區(qū)別。有些是直接對網(wǎng)絡信息進行直接收集,有些則是在特定設置的傳感器的作用基礎上,得到數(shù)據(jù)信息。諸如一些交通攝像頭中,就會裝置特定的GPS或者是交通規(guī)則智能感應捕捉系統(tǒng),又或者是停車是否在規(guī)定位置的感應識別系統(tǒng),都會對相應的交通情況做出信號數(shù)據(jù)信息的采集,再進行相應的系統(tǒng)識別處理。本文的研究設計是針對各種網(wǎng)絡中的網(wǎng)站、論壇、博客等進行的網(wǎng)絡搜索界面的信息智能捕捉,清洗過濾掉無價值信息,將包括用戶訪問網(wǎng)頁時的瀏覽歷史圖片文字信息以及瀏覽時長日期等數(shù)據(jù),然后再結合個人身份信息進行分類歸納存儲。
本文的設計主要是利用Pvthon編程語言為基礎,全球廣域網(wǎng)Web為信息收集對象,分析了該網(wǎng)站在HTTP網(wǎng)絡協(xié)議下的網(wǎng)頁界面的信息抓取原理,并將scrapy框架實驗應用于淘寶軟件中,證實web進行matplotlib可視化抓取顯示于頁面上的數(shù)據(jù)操作效率有所提高
Web數(shù)據(jù)抓取技術是利用某種編程方法對網(wǎng)絡頁面信息收集并加以智能篩選提取的一種方法。該技術是一種模擬瀏覽網(wǎng)站后臺管理人員的操作,獲取網(wǎng)頁中經(jīng)過特定編程呈現(xiàn)的格式化瀏覽信息,包括JSON、access結構格式化的信息,然后再通過相關技術軟件的分析提取處理,去除除了文字信息外的框架,提煉純粹的非結構化信息數(shù)據(jù),并統(tǒng)一格式保存在文件當中[1-2]。
隨著人們對網(wǎng)絡信息需求的增大,網(wǎng)絡信息的種類趨向于復雜化,更多的信息在網(wǎng)站頁面的嵌入呈現(xiàn)方式也更豐富多元。網(wǎng)絡信息的呈現(xiàn)不只是網(wǎng)頁表面的本體圖文數(shù)據(jù)信息,還包括網(wǎng)頁瀏覽操作對象的之外的個人信息,這些個人信息可以顯示操作者此時的地理位置、登錄賬號信息、瀏覽時長等等[3]。此外,還有一些對網(wǎng)站搜索查詢時的信息。對于這些信息的獲取,需要的不僅僅是行之有效對應的操作手法,對于一些不規(guī)則隱藏的數(shù)據(jù)信息,也要有相應的對策方式才能夠對潛在深入的信息有效精確提出來,發(fā)揮其重要價值。
傳統(tǒng)人工對網(wǎng)頁信息的抓取方式可能就是普通常見的復制方式,很容易出現(xiàn)文字遺漏現(xiàn)象,又或者是復制信息不到位不準確錯誤的現(xiàn)象。所以相對于這種現(xiàn)象,webscraping技術相對來說是利用計算機軟件程序進行信息的獲取,排除人工干預情況的發(fā)生,提高效率。傳統(tǒng)人工信息抓取需要滿足瀏覽器頁面對相關結構化HTML數(shù)據(jù)協(xié)議,在復制相對應的格式文字過程中,要下載經(jīng)渲染排布的網(wǎng)絡結構,局限性相對很大,有的甚至設置不可抓取的格式,就難以完成基礎的信息采集操作[4]。而針對這種情況,webscraping技術通過本身的設置代碼操作,一系列的程序呈現(xiàn)都會自動生成,只需進行HTML數(shù)據(jù)抓取即可,提高精確度,在出現(xiàn)信息抓取錯誤時,軟件機制還能夠自我修改糾正。
Python的計算機語言程序在編程中是對各種操作對象進行直接運行的方式,數(shù)據(jù)庫容量大、功能強大。相對于其他設計語言,Python的計算機語言對于使用編寫者來說更加的清晰易懂,所以對其修改維護也就越方便,這對于web scrapin技術的開發(fā)應用就帶來了的未來可操作性[5]。所以使用該計算機語言進行編程,可以為web scraping開發(fā)提供極大的便利性。基于Python的web數(shù)據(jù)采集的實現(xiàn)過程,是通過HTTP模塊、re模塊、cookielib模塊、XPath技術完成的。主要流程是在web scraping軟件技術的支持下,利用HTTP的網(wǎng)絡協(xié)議,進行網(wǎng)頁界面信息結構化解析,web形成操作應答處理,re模塊對相對應的結構化信息進行數(shù)據(jù)提取實現(xiàn)圖文內容的讀取。接下來就要對讀取內容進行下載存儲。主要由URL參數(shù)負責下載路徑和文件位置的處理提示。根據(jù)信息量的實體情況,就會在data對象窗口進行Timeout參數(shù)請求操作的實現(xiàn),如果數(shù)據(jù)信息是空的,系統(tǒng)就會自動處理出現(xiàn)GET的請求,反之如果是實體量時,就會發(fā)出實體請求表示其未排空并超出規(guī)定時間[6]。在進行urllib2、URLopen修改調解時,通常會對對應的所要提取的參數(shù)信息有以下兩種處理結果和情況:
一是如果HITTP出現(xiàn)錯誤。出現(xiàn)頁面上有此請求超時錯誤顯示的原因如果是web網(wǎng)站的服務器本身出現(xiàn)某種故障,就會導致整個系統(tǒng)在運行時的代碼編程出現(xiàn)錯誤,所以這兩種對象的異常會被捕捉并識別判定。
二是HITTP未出現(xiàn)錯誤。urllib2、URLopen修改調解就會能夠正常運行并返回文件對象。以read方法抓取信息內容。信息內容的結構格式如果是正常HTTP格式,就只需要下載到對應指示文件存儲位置當中,如果是壓縮包形式,還需要先進行解壓包處理。
上文提到HTML模塊主要實現(xiàn)網(wǎng)頁信息頁面與抓取技術程序之間的交互關系和操作,在得到的初步網(wǎng)絡數(shù)據(jù)由于屬于結構化格式,所以重新下載到新的文件中就需要保證其適應性,所以對初步信息的重新編碼是有必要的。在Python標準庫中,具體的操作流程就是把這些字符對象用re模塊進行讀取之后,對字符對象的content-type得到獲取,然后再重新進行程序語言規(guī)劃成統(tǒng)一的Unicode類型,保證存儲時能夠統(tǒng)一編輯可操作[7]。
XPath可以對字符信息進行文檔格式屬性進行指示,有效解決字符的空白字、標記等格式不規(guī)劃情況。
進行網(wǎng)站數(shù)據(jù)的爬取,就需要對網(wǎng)站初始爬取內容進行分析歸納。利用抓包工具獲得該信息網(wǎng)站所來源的初始數(shù)據(jù)地址,然后找到正確的地址之后,進行數(shù)據(jù)信息的篩選,如果是有效的,系統(tǒng)就會確定并保留,否則接著下一個URL爬取隊列進行循環(huán)的工作,直至滿足系統(tǒng)設置的抓取條件,完成整個操作流程。具體操作如圖1所示。
圖1 爬蟲設計操作流程
由于數(shù)據(jù)里有許多“臟數(shù)據(jù)”,所以在抓取到數(shù)據(jù)后的第一個步驟就是做清洗處理,以排除缺失值和數(shù)據(jù)異常的情況。具體的計算機編程是借助于numpy語言函數(shù)里的describe()進行數(shù)據(jù)的篩選,然后對這些數(shù)據(jù)符號的數(shù)值進行分類歸納,算出它們的極大值,平均值,中位值,極小值,方差等來進行區(qū)分辨別。最后將異常值缺失值進行轉換、規(guī)劃的可視化分布操作,就可以得到相應的數(shù)據(jù)圖,方便之后的數(shù)據(jù)分析。
隨著大數(shù)據(jù)應用被人們廣泛應用于各個領域,計算機研究開發(fā)者應該致力于利用更智能優(yōu)化的系統(tǒng)程序,讓客戶以更快的方式精準獲取有價值的信息,這也是未來大數(shù)據(jù)網(wǎng)絡技術研究的重點。通過本文研究發(fā)現(xiàn),web抓取技術的程序化操作避免了人工操作的失誤率,提高了工作效率和信息獲取率,能最大限度地發(fā)揮信息采集的作用,所以該技術值得推廣和應用。