【項目願景】系統基於智能爬蟲方向對數據由原來的被動整理到將來的主動進攻的轉變的背景下,將賦予」爬蟲」自我認知能力,去主動尋找」進攻」目標。取代人工複雜而又單調的重複性工做。可以實如今人工智能領域的某一方向上獨當一面的做用。java
【項目進展】項目一期基本實現框架搭建,對數據的處理和簡單爬取任務實現。python
【項目說明】爲了可以更好理解優秀框架的實現原理,本項目儘可能屏蔽優秀開源第三方jar包實現,自定義實現後再去擇優而食,造成對比。git
【設計原則】依據形式跟進新技術,不斷積累在不一樣業務場景下對各個開源技術的駕馭能力github
【項目規劃】算法
第一期 實現整個項目框架的搭建以及基礎知識的積蓄!編程
第二期 徹底實現爬蟲在網絡領域的各類需求運做數組
第三期 利用框架在特定領域內獲取指定數據量後,經過」爬蟲」自動批量處理海量數據,從中搜集(挖掘)有用數據或者經過各類識別技術(模式識別、圖片識別、語音識別等)實現數據自動收集並高效化整理!跳轉到第4、五期網絡
第四期 平臺框架升級,利用現有成熟數據處理以及數據可視化技術對平臺相應功能點進行生產化(所謂生產話改造是指可以利用成熟框架快速適應生產化需求)改造。[成熟技術有Hadoop\Spark\Redis等優秀的各個方面的框架或技術、R語言],(注意:而且儘可能使用開源框架,目的是研究優秀框架的實現源代碼)數據結構
第五期 平臺語言升級,由於數據處理方向python有着優秀的性能,故須要將開發好的平臺部分功能用合適的語言實現[注意:平臺在真正的運行過程中一定存在多方面的性能問題,要不斷的反思解決問題的方案,結合不一樣語言的優點和所作的業務邏輯的差異,採用不一樣的處理方式]架構
第六期 移動端開發,自選方向......
第七期 採用機器學習等技術深度解析數據中的自動化問題,是的數據史前時代的被動整理,成爲將來數據的自動清洗,將成熟的識別技術應用到平臺開發當中。
【項目設計忠告】
本着實現任何功能從jdk甚至更爲基礎的代碼訓練出發,使本身更加了解底層的實現細節,從而在儘量短的時間裏將jdk的80%可以實現自由使用,java只是與計算機溝通的一種工具或是手段!在編程過程中自我實現某些功能一定不是最優的,你就要學會從中尋找利於更爲合適的和計算機溝通的方式,不一樣語言又不一樣的優點,要在不斷地實踐中摸索,發揮出不一樣語言的優點出來!
若是說 Java 是自動檔轎車,C 就是手動檔吉普。數據結構呢?是變速箱的工做原理。你徹底能夠不知道變速箱怎樣工做,就把自動檔的車子從 A 開到 B,並且未必就比懂得的人慢。寫程序這件事,和開車同樣,經驗能夠起到很大做用,但若是你不知道底層是怎麼工做的,就永遠只能開車,既不會修車,也不能造車。若是你對這兩件事都不感興趣也就罷了,數據結構懂得用就好。但若你今生在編程領域還有點更高的追求,數據結構是繞不開的課題。
Java 替你作了太多事情,那麼多動不動還支持範型的容器類,加上垃圾收集,會讓你以爲編程很容易。但你有沒有想過,那些容器類是怎麼來的,以及它存在的意義是什麼?最粗淺的,好比 ArrayList 這個類,你想過它的存在是多麼大的福利嗎——一個能夠隨機訪問、自動增長容量的數組,這種東西 C 是沒有的,要本身實現。可是,具體怎麼實現呢?若是你對這種問題感興趣,那數據結構是必定要看的。甚至,面向對象編程範式自己,就是個數據結構問題:怎麼才能把數據和操做數據的方法封裝到一塊兒,來造出 class / prototype 這種東西?
此外,很重要的一點是,數據結構也是通向各類實用算法的基石,因此學習數據結構都是提高內力的事情。在全程設計的過程中要不斷堅持從錯誤中學習,有位名人曾說,我從別人的錯誤裏去學習,而不是一直去學習別人是怎麼成功的!這也就是說,咱們要這愛bug,調試bug就是在自我超越中成長!
【架構及核心模塊實現】
【分佈式爬蟲架構原理圖】
【項目地址】https://github.com/chenkai1100/SpiderFrame/
歡迎各路大神批評指正。