|
1.爬蟲是什么? 2.爬蟲的應(yīng)用領(lǐng)域 3.爬蟲延伸的應(yīng)用 因為人工智能、自動化、大數(shù)據(jù)等的發(fā)展,Python的優(yōu)勢明顯放大,從一個名不經(jīng)傳的小弟,躍居關(guān)注熱度最高編程語言之一。 
發(fā)展至今,Python在應(yīng)用不斷涌現(xiàn):系統(tǒng)運(yùn)維、圖形處理、數(shù)學(xué)處理、文本處理、數(shù)據(jù)庫編程、網(wǎng)絡(luò)編程、web編程、多媒體應(yīng)用、黑客編程、爬蟲編寫、機(jī)器學(xué)習(xí)、人工智能等等...... 那么Python眾多應(yīng)用方向里爬蟲是什么?除了數(shù)據(jù)采集還有其他用處嗎? 今天我們重點講一下網(wǎng)絡(luò)爬蟲,非常厲害的一個應(yīng)用! 首先我們了解一下: 
一、爬蟲是什么? 平時生活中會聽到很多關(guān)于爬蟲的信息,但是好像還是很多人很懵圈!昨天有提及到爬蟲的應(yīng)用,今天詳細(xì)給大家科普一下。 爬蟲,即網(wǎng)絡(luò)爬蟲,能夠從網(wǎng)絡(luò)上自動批量地爬取和整理自己需要的信息用于商業(yè)分析、調(diào)研學(xué)習(xí)、娛樂生活... 大家可以理解為在網(wǎng)絡(luò)上爬行的一只蜘蛛!互聯(lián)網(wǎng)就比作一張大網(wǎng),而爬蟲便是在這張網(wǎng)上爬來爬去的蜘蛛,如果它遇到自己的獵物(所需要的資源),那么它就會將其抓取下來。 大家想象一下這個場景,比如這只蜘蛛它在抓取一個網(wǎng)頁,在這個網(wǎng)中他發(fā)現(xiàn)了一條道路,其實就是指向網(wǎng)頁的超鏈接,那么它就可以爬到另一張網(wǎng)上來獲取數(shù)據(jù) 
因為python的特性,python易于配置,對字符的處理也非常靈活,加上python有豐富的網(wǎng)絡(luò)抓取模塊,所以用python去做爬蟲是最適合的編程語言。 如果把整個互聯(lián)網(wǎng)當(dāng)成一個網(wǎng)站,那么網(wǎng)絡(luò)蜘蛛就可以用這個原理把互聯(lián)網(wǎng)上所有的網(wǎng)頁都抓取下來。 爬蟲可以抓取某個網(wǎng)站或者某個應(yīng)用的內(nèi)容,批量一次性提取有用的價值,禮物上千條評論,上千個標(biāo)題黨,上千張圖片,文獻(xiàn)。 沒有技術(shù)的時候,只能傻瓜式操作,一次又一次的重復(fù)性操作,耗費大量時間。 但如果交給爬蟲,只需要運(yùn)行你寫的爬蟲代碼,這只蜘蛛就會按照你的需求去自動爬取你需要的上千條數(shù)據(jù)。 我們可以使用網(wǎng)絡(luò)爬蟲對數(shù)據(jù)信息進(jìn)行自動采集。 
比如應(yīng)用于搜索引擎中對站點進(jìn)行爬取收錄,應(yīng)用于數(shù)據(jù)分析與挖掘中對數(shù)據(jù)進(jìn)行采集,應(yīng)用于金融分析中對金融數(shù)據(jù)進(jìn)行采集。 二、爬蟲應(yīng)用領(lǐng)域 大家?guī)缀趺刻於际褂玫乃?span>索引擎??,還是通過爬蟲??都是通過關(guān)鍵字搜集信息,但是,我們使用百度或是Google只能一條條信息去收集和整理,而爬蟲能則可以把所有相關(guān)的信息全部收集起來。 如果把百度、Google比作騎自行車,每次只能載入一條信息;那爬蟲可就是開高鐵,可以把信息批量載入,省時省力而且信息會更加全面。 看完上面的介紹你可能想爬蟲就是做個信息搜集的工具,如果對信息數(shù)據(jù)需求并不大也沒什么用呀! 醬醬告訴你,并!不!是! 爬蟲的作用并不局限于爬取信息,它在互聯(lián)網(wǎng),生活,工作上都可以幫助你!我們來仔細(xì)爬蟲還能玩出什么花樣? 1.剛剛結(jié)束的雙十一嗨購里,你是否往返于淘寶、京東各大購物網(wǎng)站,優(yōu)惠券疊加,商品比價,湊滿減。 同樣的一個商品可能在不同網(wǎng)購平臺價格不一樣,這就催生了。返利網(wǎng),折多多,折xx等。 那么這些站是如何在幾分鐘之內(nèi)甚至秒級的時間內(nèi)知道一件商品在某站有優(yōu)惠? 這就需要一個數(shù)據(jù)采集系統(tǒng)(爬蟲)來實時監(jiān)控各站的價格浮動。先采商品的價格,型號,配置等,在做處理,分析,反饋。如下圖,某個優(yōu)惠券站。當(dāng)然還有,旅游網(wǎng)站也是這個套路。 
2.搶火車票的一把好手, 說不定你過年買下的黃牛販子手里的票就是靠Python搶到的呢 有圖為證,一起來看看一個專業(yè)課同學(xué)寫的搶火車票代碼吧 


這其實是爬蟲課里的一個項目練習(xí) 
學(xué)完爬蟲之后今年過年的時候可以試試,寫個搶票小程序,使用 Python3 抓取12306網(wǎng)站的 車票信息,及時提醒,自動下單 聽說還能搶演唱會票(~o ̄3 ̄)~! 3.輿情系統(tǒng)的應(yīng)用。 輿情顧名思義就是輿論發(fā)展的情況,有正面有負(fù)面。利用數(shù)據(jù)采集技術(shù)來監(jiān)測搜索引擎、新聞門戶、論壇、博客、微博、微信、報刊、視頻的輿情。 說白了就是用這個來實現(xiàn)實時的發(fā)現(xiàn)某一行業(yè)或地區(qū)的熱點事件,譬如清博輿情,百度輿情等等。 
三、爬蟲延伸的應(yīng)用 1.用爬蟲——城市公交、地鐵站點和線路數(shù)據(jù)采集可視化分析 聯(lián)網(wǎng)地圖上有大量的信息,包含公交、地鐵等數(shù)據(jù),解析其數(shù)據(jù)反饋方式,可以通過Python爬蟲采集。 首先需要構(gòu)建傳入的參數(shù),主要的包括路線名稱,城市編碼,地理范圍,縮放尺度。地理范圍可以通過坐標(biāo)拾取器獲取,參數(shù)經(jīng)url編碼后,發(fā)送請求,判斷返回數(shù)據(jù)是否符合要求。(會遇到反爬蟲機(jī)制,需要人工驗證) 以下是某一條公交站點和線路的處理后的數(shù)據(jù)展示 2.爬可視化圖 當(dāng)我們需要用更直觀有效的形式來展現(xiàn)各類大數(shù)據(jù)信息時,熱力圖無疑是一種很好的方式。作為一種密度圖,熱力圖一般使用具備顯著顏色差異的方式來呈現(xiàn)數(shù)據(jù)效果,熱力圖中亮色一般代表事件發(fā)生頻率較高或事物分布密度較大,暗色則反之。 值得一提的是,熱力圖最終效果常常優(yōu)于離散點的直接顯示,可以在二維平面或者地圖上直觀地展現(xiàn)空間數(shù)據(jù)的疏密程度或頻率高低。 瀏覽一下Python程序庫目錄你會發(fā)現(xiàn)無論要畫什么圖,都能找到相對的庫——從適用于眼球移動研究的GazeParser,到用于可視化實時神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程的pastalog。 3.爬蟲財務(wù)報表分析 利用python爬蟲爬取數(shù)據(jù)報表 東方財富網(wǎng)有一個數(shù)據(jù)中心:http://data.eastmoney.com/center/,該數(shù)據(jù)中心提供包括特色數(shù)據(jù)、研究報告、年報季報等在內(nèi)的大量數(shù)據(jù) 
假如,我們想獲取所有股票2018年中的業(yè)績報表數(shù)據(jù),然后對該數(shù)據(jù)進(jìn)行一些分析。采取手動復(fù)制的方法,70多頁可以勉強(qiáng)完成。 但如果想獲取任意一年、任意季度、任意報表的數(shù)據(jù),要再通過手動復(fù)制的方法,工作量會非常地大。我們可以利用Selenium自動化技術(shù)。 (使用pip來安裝selenium包。Python 3.6在標(biāo)準(zhǔn)庫中有pip。使用pip安裝selenium命令:pip3 install selenium) 1.東方財富網(wǎng)的財務(wù)報表數(shù)據(jù)不用登錄可直接獲得,Selenium更加方便爬取, 2.先以單個網(wǎng)頁中的財務(wù)報表為例,表格數(shù)據(jù)結(jié)構(gòu)簡單,可先直接定位到整個表格,然后一次性獲取所有td節(jié)點對應(yīng)的表格單元內(nèi)容。 3.接著循環(huán)分頁爬取所有上市公司的數(shù)據(jù),并保存為csv文件。 重新構(gòu)造靈活的url,實現(xiàn)可以爬取任意時期、任意一張財務(wù)報表的數(shù)據(jù)。 
爬取年報季報類別下,任意一年(網(wǎng)站有數(shù)據(jù)至今)、任意財務(wù)報表數(shù)據(jù)。 構(gòu)建好代碼,我們所需要做的,僅是簡單輸入幾個字符,其他就全部交給電腦,然后過一會兒打開excel,就可以看到所需數(shù)據(jù)'靜靜地躺在那里',是不是很高效? 
爬蟲能做很多事,能提高工作效率,能做商業(yè)分析,也能做生活助手。無論是從事什么什么行業(yè)的,從事運(yùn)營、策劃、銷售、HR、金融從業(yè)者、電商從業(yè)者、創(chuàng)業(yè)者...爬蟲都有大用處。 今天的分享就到這里結(jié)束啦,順便說一句,完成后續(xù)咱們的基礎(chǔ)語法課+精進(jìn)爬蟲課,就可以達(dá)到爬蟲初級工程師的水平喔!也可以做上面醬醬說的事情~ -------結(jié)束分割線------
|