◆衛(wèi)錦
數據安全與云計算
一種新的基于網絡爬蟲的證券數據采集方法
◆衛(wèi)錦
(山西太原科技大學 山西 030024)
本文通過圖像序列化和宏錄制技術的結合,提出了一種通用的證券數據采集方法。這種方法具有很強的適用性和普適性,有助于滿足使用者個性化數據的采集需求,同時對使用者有較低的使用門檻。
數據采集;證券數據;序列化;宏錄制
人工智能對當今時代的影響越來越大,各個領域也越來越多地將人工智能技術應用到本領域中。對于人工智能技術來說,重要的前提之一是擁有足夠的數據量,所以數據采集就成了人工智能技術中的重要內容之一。但是各領域中關于數據采集方法的討論比較少,大部分有關人工智能的文章是關于數據挖掘方法的討論。對于普通研究者,手中沒有足夠的數據,就沒有辦法進行下一步數據挖掘工作。針對此種情況,本文將以數據采集方法為研究內容,提出一種新的數據采集方法,雖然該方法在本文中針對的是證券數據采集,但是也可擴展到其他領域,具有一定的普適性。
隨著大數據、人工智能和區(qū)塊鏈等技術的不斷出現(xiàn),各行各業(yè)對數據的需求越來越大。尤其是在人工智能興起的時代,對數據規(guī)模的要求也越來越大,而常用的數據采集方法大多依賴于共享數據網站的 API 接口(如toshare)以及他人的數據分享,來源由他人控制,不能滿足一些有個性化數據采集需求的使用者。同時,大部分數據共享或者數據分享需要一定的資金支持,對于一些在校學生或者普通的研究者來說存在一定的壁壘。為了彌補這些不足,破除研究壁壘,本文提出了一種新的基于網絡爬蟲的證券數據采集方法,并以具體實踐論證該網絡爬蟲技術在證券數據采集中的可行性與實用性。該方法基于圖像序列化的技術與鼠標宏錄制技術的結合,并將結合后的技術創(chuàng)新的應用在證券數據采集工作中,取得了良好效果。
網絡爬蟲(又稱網絡蜘蛛、網絡機器人)是一種程序或腳本,根據一定的規(guī)則自動獲取萬維網的信息。網絡爬蟲可以自動查取 Web 的超鏈接結構,定位和檢索信息。它從網站的某個頁面開始,讀取網頁的內容,在網頁中找到其他超鏈接,然后通過這些超鏈接找到下一個網頁。不斷前進,直到互聯(lián)網上的所有網頁都被抓取[1]。
通常意義上的網絡爬蟲是通過爬取html頁面內的內容來采集數據的,而這種方法需要對網站結構,相應的爬取技術以及編寫語言都有一定的了解才能夠做到,需要大量的學習、測試,需要使用者花費大量的時間精力。而本文提出的爬取技術脫離于網站結構,從圖像識別的角度出發(fā),通過圖像識別的方法爬取網頁內容、數據,方法簡單高效,具有一定的普適性和推廣價值。
圖像序列化是指將圖像數字化的過程,圖像通過序列化能夠將圖像的真實特征提取出來,配合濾波技術可以完整提取出目標信息,進而可以獲取圖像中感興趣的內容[2]。本文通過圖像二值化來實現(xiàn)圖像序列化,具體的步驟分為兩步。
一般來說,圖像中的很多信息是沒有使用價值的,為了獲取感興趣的內容,需要將圖像中除指定內容外的其他內容進行過濾。在本文中采用的方法是閾值分割法,通過閾值分割法將指定顏色之外的其他顏色過濾去除,并將剩余顏色二值化[3]。
具體二值化方法是將選定顏色的顏色值設置為基值 B,通過迭代閾值[4]的方法找到合適的閾值P,將[B-P,B+P]范圍內的顏色設定為指定顏色,將其他范圍內的顏色設定為非必要顏色。將過濾后圖像中的指定顏色替換為白色(0),非必要顏色替換為黑色(255)。如圖 1 所示。
對于本文所處理的彩色圖片,顏色值的計算方法是將原圖中的選定顏色的 RGB 三通道顏色分量相加。
圖1 提取指定顏色內容
網頁制作時,顯示的字體在同一個內容中一般是統(tǒng)一的,如圖1 中的數字的字體。并且每個字符所占寬度、高度是相等的,所以可以用一個固定長寬的像素矩陣代表一個字符,故可用如下方法將二值化后的圖片序列化。
如圖2所示,圖像為一個 4*6的像素矩陣,將其中二值化的像素矩陣序列化。序列化方法為,黑色取值為0,白色取值為1,圖例中序列化結果為 011010011001100110010110。將序列化后的結果與圖形庫中已有的序列進行對比,如果圖形庫中存在則可判斷出該字符的內容。如圖2中所示示例,如果圖形庫中已經存在了 011010011001100110010110 序列,并且該序列代表的數字是0,則可判斷出該二值化像素矩陣代表的字符為0。
圖2 4*6二值化像素矩陣
圖形庫的更新依賴于使用者更新,需要使用者手動添加常用字符。對于證券數據采集的使用者來說,由于需要采集的數據大部分是一些數字,所以圖形庫添加的內容相對較少,方法復雜度也相對較低。
宏錄制指的是將常用的操作存儲下來,方便重復執(zhí)行。宏錄制的特點是可以通過錄制一段宏來減少重復工作的工作量。大部分編程語言均可實現(xiàn)鼠標移動等功能,本文采用的方法是通過 python 語言中的pymouse模塊中的 move 功能實現(xiàn)。
證券數據采集的特點是經常需要采集一段時間內的數據,而網頁數據特點之一就是可以通過鼠標移動來切換需要采集數據的時間。如圖3所示,通過鼠標的移動,可完成不同時期證券數據的切換,從而實現(xiàn)采集數據的更新。大部分證券數據都有類似特征,都可以通過鼠標移動來更新數據內容。所以該特點在證券數據采集中具有一定的普遍性。
針對證券數據的特點,可根據采集數據的要求,通過錄制鼠標移動的距離,結合圖像序列化來提取相應一段時期內的證券數據。具體方法為,(1)測試并記錄下能夠實現(xiàn)數據更新的鼠標距離 d;(2)記錄需要爬取的鼠標初始所在位置(x,y);(3)調用 move(x+d, y),實現(xiàn)鼠標的移動;(4)將更新后的圖像通過圖像序列化提取相應內容,將結果保留在對應的數據文件中。重復(3)(4)兩步即可實現(xiàn)數據的連續(xù)采集,從而采集出使用者感興趣的數據內容。
本文用上述提到的方法采集了為期1 年的證券數據,數據采集過程花費時間約為1小時,部分采集數據如圖4所示。經驗證,全部采集數據正確。通過實際測試,證明該方法簡單、有效、準確,有良好的采集效果,能夠滿足證券數據采集需求。
圖4 爬取數據展示
本文基于圖像序列化以及鼠標移動的宏錄制提出了一種新的證券數據采集方法,該方法與以往的網絡爬蟲方法不同,不依賴于網站提供的 API,也不依賴于 html 頁面分析,而是從圖像識別的角度出發(fā),通過圖像序列化后識別圖像內容,從而采集數據。經測試,該方法簡單、有效、準確,具有很強的適用性,有較低的使用門檻,有助于幫助研究者快速獲取研究數據。同時,該方法具有一定的普適性,不僅適用于證券數據的采集,也可用于其他領域數據的采集。該方法的主要缺點是采集數據的速度較慢,需要花費一定的時間成本。另外圖形庫的添加有一定的復雜性,增加了該方法的操作量,對于需要采集大量文字性內容的使用者來說不適合使用。
[1]CHOJ.Crawlingtheweb:andmaintenanceof large-scaleweb data[J]. discovery,November,2001.
[2]賈銹閎.基于深度學習的低質量文檔圖像二值化算法研究[D].湖北工業(yè)大學,2020.
[3]黨文靜.圖像區(qū)域分割算法的研究與應用[D].安徽理工大學,2018.
[3]楊培,陳沿錦,等.一種改進的快速迭代閾值選擇算法[J].青海大學學報,2018,36(03):34-39.