手把手教你寫一個爬蟲
經(jīng)常聽音樂的的人有一個苦惱,很多自己喜歡的歌曲,因為各種原因無法進(jìn)行免費下載。很多人沒辦法,只能咬咬牙開個會員,都是自己辛苦掙的人民幣啊…
幸好,我們還有爬蟲!
通過爬蟲,我們可以很輕易,很快速的獲取互聯(lián)網(wǎng)上的資源,不管是音樂視頻,還是工作和商業(yè)中所需要的數(shù)據(jù),都可以使用爬蟲輕松獲取。
百分之90以上的爬蟲程序都用Python語言完成,那么什么是爬蟲?
網(wǎng)絡(luò)爬蟲,是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本。
目前爬蟲工程師也是互聯(lián)網(wǎng)炙手可熱的崗位之一。這里參考了北京市爬蟲工程師薪酬狀況:
那么今天我們就來上手寫一個爬蟲。
一、 準(zhǔn)備工作
學(xué)習(xí)爬蟲不難,但是基本的Python知識要有!
建議大家先學(xué)習(xí)我要自學(xué)網(wǎng)《Python初學(xué)者教程》中的一部分內(nèi)容:
必備章節(jié)如下:
第一章、 初識Python
第二章、 變量、數(shù)據(jù)類型
第三章、 選擇結(jié)構(gòu)
第四章、 循環(huán)結(jié)構(gòu)
第五章、 函數(shù)和模塊
第六章、 文件讀寫
這些章節(jié)面向初學(xué)者,非常簡單,學(xué)完就可以看懂爬蟲的大部分教程了。
然后就可以學(xué)習(xí)《Python爬蟲教程》,開始你的爬蟲之旅!
有了基礎(chǔ)知識做鋪墊之后,我們就可以上手音樂資源寫爬蟲了,寫之前我們需要通過pip工具安裝一個request模塊:
二、 分析網(wǎng)站
這是一個音樂列表,其中的歌曲限制下載個數(shù),我們希望利用爬蟲突破限制下載列表中的音樂到本地。
通過瀏覽器抓包,我們發(fā)現(xiàn)每一頁請求的鏈接是這樣的:
中間的pageIndex就是每一頁的頁碼信息,我們想要爬取音樂信息需要先爬取每一頁的網(wǎng)頁信息,再從網(wǎng)頁信息中找到音樂的url,也就是拿到音樂在服務(wù)器中的相對地址,就可以很輕易的下載到音樂。
這里的title為音樂名,sid是音樂的編號,通過音樂編號可以拼接出音樂資源的url。
以上就是音樂資源的url,其中的1621,也就是sid,我們只要獲取了每首歌曲的sid,是不是就可以拼接出歌曲資源的url,就可以直接拿到歌曲資源了?
我們順便把獲取到的title設(shè)置為歌曲名,把音樂資源以對應(yīng)歌曲名保存到本地文件,就完成了音樂的下載。
其中具體的代碼實現(xiàn)可以參考下面步驟,我們繼續(xù)往后看。
三、 爬取音樂列表
我們利用sublime 新建一個Python文件,并準(zhǔn)備好以下數(shù)據(jù):
稍后我們爬取到的音樂sid會保存到songId中,音樂名會保存到songName中。
然后通過循環(huán)構(gòu)造每一頁音樂列表的url,利用requests爬取到列表所在的網(wǎng)頁,這時我們需要的title信息和sid信息都在這個網(wǎng)頁中。代碼如下:
最終我們拿到所有的title和sid ,裝在了兩個列表中。等下我們用來構(gòu)造歌曲url。
四、 爬取歌曲資源
下面就是構(gòu)造歌曲資源url,爬取歌曲了!我們依然用requests模塊來處理:
我們用requests.get().content獲取到了音樂文件,這是一個二進(jìn)制文件,用response接收了這個文件,等下我們就可以直接把response寫入到本地。
五、 保存音樂到本地
最終,我們以二進(jìn)制的方式把音樂資源寫到本地文件,在這里我們使用到了音樂名,剛好跟我們下載的音樂資源一一對應(yīng)。
現(xiàn)在整個爬蟲項目就完成了,我們來看一下執(zhí)行結(jié)果:
六、 執(zhí)行結(jié)果
執(zhí)行之前我們首先要保證本地是否設(shè)置好了對應(yīng)的文件夾,我們在E盤
新建了一個music文件夾,程序執(zhí)行后會將音樂保存到這里:
我們看到,音樂已經(jīng)保存到了指定的文件夾,而且速度很喲!
終于可以好好享受下優(yōu)美動聽的音樂了。
在這里我們只是給出了一個簡單的例子,詳細(xì)系統(tǒng)的教程,大家可以在我要自學(xué)網(wǎng)中搜索《Python爬蟲教程》。
本教程內(nèi)容涵蓋了網(wǎng)絡(luò)爬蟲的原理以及開發(fā)邏輯,網(wǎng)絡(luò)爬蟲基礎(chǔ)知識,數(shù)據(jù)清洗,Scrapy框架等內(nèi)容。在介紹網(wǎng)絡(luò)爬蟲基本原理的同時,注重具體的代碼實現(xiàn),加深讀者對爬蟲的理解,加強(qiáng)讀者的實戰(zhàn)能力。趕快來開始你的爬蟲之路吧!
視頻網(wǎng)址:https://www.51zxw.net/List.aspx?cid=732
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。