第十一章 數據海洋和爬蟲

字數:3067   加入書籤

A+A-




    

    

    數據分析模塊是股神1.0的大腦,除了這個大腦之外它還需要其他幾個關鍵性模塊。既然做大數據分析,那麽這個數據來源就需要有一個功能模塊來解決,它專門負責數據的收集。

    這個數據收集模塊就像是股神的手腳,負責從網絡上收集對應的數據,這個模塊一個關鍵的組成部分就是爬蟲。

    國際互聯網發展到今天,變成了體係龐雜內容浩繁的網狀係統,這個係統上的信息節點規模數以十億計,這些節點可能包括台式機、筆記本、服務器、大規模群組、智能手機、平板、智能導航終端、各類信息采集終端、信息發射終端等等等等。

    隻要能夠鏈接上互聯網,能夠與互聯網進行數據交互的,都可以視為一個信息節點,比如遍布城市的各類監控探頭,各類通訊基站,嚴格來說都屬於節點之一。

    這些節點為互聯網提供的數據類型也各種各樣,有文字,有數據,有圖表,有文檔,有視頻,有音頻,有數據庫;它們的表現形式各式各樣,有通用格式,有專用格式;所有這些信息加在一起,共同組成了沉積在國際互聯網中浩瀚的數據海洋。

    這個數據海洋是動態的,它時刻處在在運動和更新之中,就好像各種洋流和浪濤一樣,永不停息。

    整個數據海洋分散在無數個信息節點之中,這些信息節點被各種通訊協議鏈接起來,讓它們可以相互通訊。各種通訊協議中,有我們最熟悉的一種,就是url,也就是我們總會遇到的網站鏈接。

    如果將整個數據海洋比喻成我們的地球,那麽每個數據節點就是一個房間,而節點內的數據信息就是我們人類,所有的信息節點組合起來,構成了地球上的無數個城市,無數個大廈,無數個房屋。

    各種各類的數據鏈接模式,就是承載人們出行的道路,而url不過是道路的一種,算是各個城市之間,各個主要的商業大廈之間互通的鐵路和公路。它主要出現在公共服務器之間,就是說隻要有了url,理論上來說它對所有數據訪客都是開放的,任何人都可以抵達這個服務器,隻不過它有沒有門禁就是另外一回事了。

    既然有公共空間,那相對應的肯定有非公共空間,除了url,還有很多鏈接模式,這些鏈接模式裏,信息節點就像是私人住宅或者軍事禁區一樣,它並不是開放給公眾的,雖然它同樣存在於數據海洋中,但你是無法隨便訪問的。

    當麵對如此龐大浩繁的數據海洋時就存在一個問題了,世界這麽大,我該如何找到目標,比如我想找感冒藥相關的數據信息,我該怎麽辦?

    正是這種需求催生了搜索引擎,搜索引擎可以幫助你快速找到目標,它就像一個找路指南一樣,你隻要告訴它想去哪,這個目的地大概什麽特征,它就會幫助你找到無數個可能合適的目的地,並且把對方的url提供給你。

    搜索引擎每天的訪問量都是海量的,每一秒同時並發的搜索請求都是數以十萬計的,在這麽多請求麵前,如果來一個請求它搜一遍互聯網,這肯定是不現實的,不僅速度慢效率低,而且僅僅這類搜索請求就足讓整個國際互聯網陷入擁堵狀態。

    為了解決這個問題,搜索引擎就有了它特有的工作模式,它先盡可能多的將數據海洋裏的信息全部找出來,然後存儲在自己的服務器群組中,一旦有了搜索請求,它隻要在自己的服務器裏進行檢索就行了。

    而幫助搜索引擎完成找這個動作的就是爬蟲。

    因為國際互聯網中的信息節點都是相互關聯的,是網狀聯係的,每個節點上都會有很多個url。所以爬蟲的工作模式就是遍曆,當它開始工作時,它會以一個信息節點為起點,然後挨個訪尋與這個節點相連的所有節點,當下一層節點還有url鏈接時,它就不斷訪問下去,直到將所有url遍曆一次才算完。

    因為整個互聯網的網狀結構,使它具備網狀互通性,所以等爬蟲將所有url遍曆了,一般來說它就已經將整個國際互聯網所有鏈接全部訪問了一遍,這注定是一個比環球旅行更加令人歎為觀止的行為。

    而莫回既然想弄這個股神1.0,他想要搜集海量數據,那麽他要做的事情其實和搜索引擎要做的事情很像,隻不過搜索引擎是所有信息都要搜集,而莫回隻需要關注股票相關的信息就行了。

    這樣的話,莫回的爬蟲就必須在具備遍曆能力的同時,還得具備篩選的能力。

    遍曆的能力解釋起來很簡單,就是你不能走回頭路和冤枉路,遊曆過的url就犯不著再走第二遍了。一條新的url被發現,首先需要判斷這條url是否已經走過,其次需要判斷這條url被安排在什麽次序去走。一個是重複性問題,一個是最優化問題,這就需要獨特的遍曆算法來解決。

    而篩選功能就是通用爬蟲和專用爬蟲之間的主要區別,莫回的爬蟲需要具備一定的識別能力,能夠辨別某個url中的內容是否具備相關性,如果不具備那麽就跳過,如果具備就將其中的內容複製回來待用。

    這個篩選功能同樣需要一大堆的算法來解決,不僅如此,它還需要具備自然語言處理能力,就是說它得具備對語言文字的理解和解析的能力,它得能夠識別哪些文字內容是與股票相關的,哪些是無用的。

    僅僅識別文字還是不夠的,它還得能夠識別其他格式的數據,比如它得能夠識別圖案,像是股票相關的各種k線圖、柱狀圖之類的,爬蟲必須能夠將其與風景畫或者自拍照區別開。

    除了圖片,其他的像是視頻、音頻、各類數據庫之類的,爬蟲都需要一一辨別出來,確定是否屬於相關內容。

    這裏麵將會有無數個技術難題需要解決,如果這個工作讓莫回一個人來完成,幾乎是不可想象的。(www.101novel.com)