今天和你們一塊兒用Python寫一個入門爬蟲,做爲基礎課程的最後一講。也但願給那些學習Python好久卻沒有思路,不知道如何實現一個爬蟲的同窗帶帶節奏,本節課會經過最簡單的方式,實現抓取遠程網頁,而且獲取全部圖片地址的程序。php
若是一直看我文章的朋友可能會知道,我在第一講中立下了一個新年flag。html
可是要本身打臉了,因爲公司技術升級,開發語言從php升級爲java。因此接下來的一段時間內沒有辦法保證Python實戰和高級的課程日更。公司定的目標是3個月實現一個不大不小的java項目,須要把以前的php代碼用java重寫,並考慮後期的微服務,大數據等問題,因此接下來個人學習精力會遷移到java上,並保證java課程日更。 學習路線初步定爲:java基礎,servlet,ssm框架使用,spring源碼學習,以及平常踩的一些坑,目的是能快速達到項目開發要求。java
固然Python的學習不會扔掉,更新頻率改成每週更新一次高級或者實戰課程,但願對你們有幫助,對本身有提升。正則表達式
廢話就說這麼多,看一下Python如何實現爬蟲程序?spring
學完這次課程,你們會對如何實現爬蟲有本身的實現思路,針對不一樣的站,經過不一樣的方法完成資料的獲取,重點是分析和思路。數據庫
5-10分鐘代碼學習,思路理解因人而異。cookie
再重複一下,本節課的重點是思路,代碼量不多,只是一個基本的流程。看一下如何實現:網絡
輸出結果:session
這就是咱們想要的,所有的圖片地址。多線程
咱們能夠把結果存到文件或者數據庫裏,在其餘場景使用。
分析一下:這個簡易的爬蟲是否是很簡單?並無咱們想象中那麼複雜,實際上有用的代碼只有5-7行。其餘再複雜的爬蟲也是在這個基礎上作的完善。首先咱們分析了網頁代碼,知道了咱們須要匹配的HTML代碼爲 https://到.png的內容。經過網絡模塊,獲取網頁內容,經過正則模塊匹配出全部圖片,最後循環處理,保存也好入庫也好,總之拿到了全部圖片路徑怎麼玩均可以。
若是互聯網上全部的資源都這樣就行了,下面介紹個人兩個實戰項目思路,這兩種狀況你們都會碰到:
對於須要先登陸再抓取的網站,第一步先模擬登陸,保存cookie。隨後的全部請求帶上cookie就能夠登陸狀態訪問了,若是不太明白的同窗能夠看一下cookie和session的區別和聯繫。
還有一種特別多的狀況是,登錄時須要驗證碼怎麼辦?思路是先獲取到登陸頁面的html。匹配出驗證碼的圖片地址,經過程序識別或者打碼平臺來識別圖片,而後帶上驗證碼登陸,保存cookie。因爲圖片驗證碼的網站很是容易被刷,因此如今的滑動二維碼纔會愈來愈多。
資源較少還好說,若是須要抓取的內容過多,簡易你們學習一下多線程,瞭解了相關思路能夠學習一下爬蟲的相關框架。
爬蟲這個詞很是形象,像一隻蟲子同樣,爬來爬去,能夠把某個網站看作是一張網,爬蟲進入首頁後,經過各級菜單(超連接)跳轉至二級菜單,三級菜單等,依次找到最後一頁的內容,一般一個網站的目錄深度不會太多,基本都是3-5層,即首頁-分類列表-詳細信息。
經過本次的課程,你能寫一個本身的爬蟲嗎?若是有任何疑問歡迎評論或者私信,我會第一時間回覆。