胡說8道的聲明:博客相關(guān)內(nèi)容都是個人學習的理解澎现,如果把讀者帶偏了伏社,當筆者瞎78扯
引言
? ?? 如果想入門學一門語言,我覺得python合適叶堆,python語法簡單等孵,容易上手。如果有一定語言基礎(chǔ)的話蹂空,基本2個小時能學完python基本語法和常用內(nèi)建庫俯萌。
? ? 然后能干什么呢,寫一些if else玩么....額上枕,貌似什么都干不了咐熙。就好比你學會了汽車原理,你就能策馬奔騰么辨萍。大兄弟棋恼,你想太多。首先買個車吧(引入三方庫或者框架)锈玉,然后學個駕校吧(學習三方庫使用)爪飘,然后練習練習再飛翔。
? ? so拉背,python各種三方庫和框架才是應(yīng)用的關(guān)鍵师崎。為啥從爬蟲說起呢,因為爬蟲簡單椅棺,只需要用到urllib(python3將urllib和urllib2整合到urllib里面了)犁罩,beautifulsoup兩個庫基本就能縱橫捭闔了。要是懂xpath或者css選擇器两疚,一些js語法床估,那記本就任你遨游了。再來加入點數(shù)據(jù)庫(典型的诱渤,SQL:mysql丐巫;NoSQL:mongoDB),那還不得上天。
? ? 好吧递胧,先區(qū)學python基本語法碑韵,再看看urllib咋寫爬蟲的,然后開始你的表演谓着。
爬蟲原理
? ? 我們在瀏覽網(wǎng)頁的時候泼诱,有大量的信息和資訊,他們是如何呈現(xiàn)給我們的呢赊锚?我們用瀏覽器去查看網(wǎng)頁的時候治筒,實際就是瀏覽器對網(wǎng)頁的網(wǎng)站服務(wù)器發(fā)起了一個request請求(通常method是Get或者Post),然后網(wǎng)站服務(wù)器(這時候web服務(wù)器捕獲到這個請求舷蒲,然后由web路由返回網(wǎng)頁信息)返回一個response耸袜,response中就包含了網(wǎng)頁信息(html)。分析分析這個html(就像 楊宗緯唱的洋蔥牲平,一層一層一層的剝開它的皮)堤框,你會發(fā)現(xiàn)網(wǎng)頁的各種文字,圖片鏈接纵柿,包括廣告信息都在html安靜的躺著蜈抓。
? ? ok,處理這個response昂儒,定位需要的元素沟使,將信息提取出來,這就是爬蟲渊跋。
? ? 爬蟲牛逼的地方在于自動化在跑腊嗡,你想想,找到一個不可描述的網(wǎng)站拾酝,寫個爬蟲燕少,吃個飯回來一看,硬盤里就爬取了大量不可描述的圖片蒿囤,刺不刺激客们,想不想學。
? ? 當然上一段都是開玩笑的蟋软,比較我們爬圖片是用于YCbCr顏色空間分析镶摘,判斷這些圖片是否不符合社會主義核心簡直觀,然后堅決舉報岳守。好吧,編不下去了....
? ? 以上碌冶,扯遠了湿痢。
scrapy爬騰訊視頻
? ? 為什么不直接用urllib寫爬蟲而要用scrapy呢,很簡單啊,地上一把M4譬重,一把噴子拒逮,就問你選啥....好吧,說白了就是覺得scrapy代碼架構(gòu)清晰臀规,開起來比較優(yōu)雅滩援。
? ? 為什么爬騰訊視頻呢,因為騰訊視頻需要去分析動態(tài)頁面塔嬉,還需要去分析視頻真實url(騰訊是不會把視頻url直接暴露給大家的玩徊,各種反爬加密),難度比較大谨究,爬蟲代碼比較簡單恩袱,必須增加難度,得裝一波胶哲。
? ? 寫累了畔塔,下一篇開始碼代碼和分析(其實是筆者還沒分析出騰訊視頻獲取真實url的請求的規(guī)則,萬事開頭難嘛鸯屿,先開個頭)