Python爬取表情包

最近自己正好自學爬蟲這部分知識,因此,我想能不能用爬蟲抓取網頁,獲得表情包,經過自己一天的研究,終於能實現這個功能,下面大家看我演(zhuang)示(bi)。

前期準備

1.我主要用到的是百度貼吧中的“表情包吧”,訪問地址是:http://tieba.baidu.com/p/5059180075

2.進去後,按F12打開開發者調試,抓取一張表情圖片,會發現其實就是一個<img>標籤:<imgsrc="https://imgsa.baidu.com/forum/w%3D580/sign=c72193ed33292df597c3ac1d8c335ce2/34f9a451f3deb48fdf9bf71cf91f3a292cf57801.jpg"size="38255" changedsize="true" width="560"height="560">

3.通過對爬蟲工作原理的瞭解,知道了需要做的就是抓取頁面的所有圖片的src資源路徑:https://imgsa.baidu.com/forum/w%3D580/sign=c72193ed33292df597c3ac1d8c335ce2/34f9a451f3deb48fdf9bf71cf91f3a292cf57801.jpg

4.關於爬蟲,雖然很有趣,但是操作起來並不容易,尤其是需要運用正則表達式知識,可以說一個爬蟲的成功與否,正則表達式起了至關重要的作用,這裏對正則還不熟悉的同學,可以看我之前寫的正則入門的文章。

首先運用正則表達式把頁面所有<img>標籤篩選出來,那在html文件裏匹配<img>標籤的正則表達式該怎麼寫呢?

可以這樣考慮:同一個圖片的同類型img標籤,按正常的寫法<imgclass="BDE_Image",這部分是固定的;接着是src的資源路徑,這是我們關注的重點;最後是width屬性,height屬性,這部分也不是固定的。

對於固定部分保持不變,src部分的匹配表達式可以這樣寫:([^”]*\.jpg),解釋一下這段正則表達式,其中[]表示的是或,‘’值的是空字符,^指的是取反,所以[^‘’]指的是生成的字符類包含除了‘’的所有字符集合。*指匹配前面的[^”]0次或多次。此外還用到了()進行了分組。

最後,對於width和height部分,正則表達式:.*?

代碼部分

運用結果

看到這麼多表情包,真香!媽媽再也不用擔心我和你們鬥圖了!

感興趣的同學,後臺回覆「表情包」即可獲得源碼,大家抓緊試試吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章