不管你是待業(yè)還是失業(yè),在這個被互聯(lián)網(wǎng)圍繞的時代里,選擇python爬蟲網(wǎng)址不變,就多了一項技能,還怕找不到工作?,還怕不好找工作?小編就來告訴你這個專業(yè)的優(yōu)勢到底體現(xiàn)在哪里:Python爬蟲爬取網(wǎng)易云的音樂??。
1.Python爬蟲爬取網(wǎng)易云的音樂
在開始之前,做一點小小的說明哈:我只是一個python爬蟲愛好者,如果本文有侵權(quán),請聯(lián)系我刪除!我自己有些曾經(jīng)付費的Python資料現(xiàn)在已經(jīng)學(xué)完了,有需要的可以評論區(qū)留言或者直接私信我,免費送給你們。本文需要有簡單的python爬蟲基礎(chǔ),主要用到兩個爬蟲模塊(都是常規(guī)的)requests模塊selenium模塊建議使用谷歌瀏覽器,方便進(jìn)行抓包和數(shù)據(jù)獲取。Part1 進(jìn)行網(wǎng)頁分析首先打開網(wǎng)易云的網(wǎng)頁版網(wǎng)易云然后搜索歌曲,這里我就搜索一首錦零的“空山新雨后”這時我們來觀察網(wǎng)頁的url,可以發(fā)現(xiàn)s=后面就是我們搜索的關(guān)鍵字當(dāng)我們換一首歌,會發(fā)現(xiàn)也是這樣的,正好驗證了我們的想法所以下一步讓我們點進(jìn)去一首歌,然后進(jìn)行播放,看看能否直接獲取音樂文件的url,如果能,那么直接對url進(jìn)行requests.get訪問,我們就能拿到.mp3文件了點進(jìn)*首“空山新雨后”,我們可以看到有一個“生成外鏈播放器”看到這個,我心中一陣激動,仿佛就要大功告成;于是我滿懷開心的點了一下,結(jié)果。。。好吧,不過我們不能放棄,來我們分析一下網(wǎng)頁但當(dāng)我們定位到兩個最有可能出現(xiàn)外鏈的地方時,發(fā)現(xiàn)什么都沒有不過作為“規(guī)格嚴(yán)格,功夫到家”的傳承者,我不能放棄啊,于是我又打開了抓包工具按照常規(guī)套路,我們定位到XHR點擊播放后,出現(xiàn)了一大堆東西,我們要做的就是找到其中的content-type為audio一類的包功夫不負(fù)有心人,在尋找了一(億)會兒后,我找到了于是我又滿懷開心的復(fù)制了這個包對應(yīng)的Request-URL粘貼后訪問這個url,結(jié)果非常滿意,這就是我一直在找的url現(xiàn)在我把那個url貼出來Part2 編寫爬蟲程序接下來就超級簡單了下面的代碼是最常規(guī)的操作,應(yīng)該有爬蟲基礎(chǔ)的都能看懂;如果有不懂的,注釋都在上面Part3 更高級的看到這里,你可能會想,為啥根本沒用selenium模塊呢?能不能直接爬取任何一首我想要的歌,而不用每首都去費心費力的找一個url呢?當(dāng)然可以噠!其實網(wǎng)易云在線播放每首歌曲時,都有一個外鏈地址,這是不會變的,跟每首歌的*一個id綁定在一起,每首歌audio文件的url如下:id值的獲取也很簡單,當(dāng)我們點進(jìn)每首歌時,上方會出現(xiàn)對應(yīng)的網(wǎng)址,那里有id值,如下圖:所以只需把上面程序中的url改成新的url即可如果還想要更好的體驗效果,實現(xiàn)在程序里直接搜索歌曲,拿到id值,就需要用到selenium模塊為什么用selenium而不用xpath或bs4?因為搜索頁面的數(shù)據(jù)是動態(tài)加載出來的,如果直接對搜索頁面的網(wǎng)頁進(jìn)行數(shù)據(jù)解析,就拿不到任何數(shù)據(jù);以我目前的技術(shù),就只能想到使用萬能的selenium模塊,下面大概說明一下步驟:1.進(jìn)行selenium無可視化界面設(shè)置2.導(dǎo)包3.指定歌曲,得到對應(yīng)搜索頁面的url4.獲取搜索頁面的html文件5.用正則模塊re匹配html文件中的id值、歌名和歌手6.將id值、歌名和歌手封裝成一個個元組,寫入一個列表中,再進(jìn)行打印7.對滿意的id值可得到一個url,再用上面的程序?qū)υ搖rl進(jìn)行requests.get方法訪問即可Part4 小結(jié)終究是我才疏學(xué)淺,這個找外鏈進(jìn)行爬取的方法也存在很多不足,比如不能在線播放的歌曲是無法下載的。不過寫這樣一個小程序練練手,對自己能力的提高確是有極大幫助的。想自學(xué)的小白或者需要資料的大佬可以找我領(lǐng)取免費的 Python資料。大家共同進(jìn)步!
就拿大數(shù)據(jù)說話,優(yōu)勢一目了然,從事IT行業(yè),打開IT行業(yè)的新大門,找到適合自己的培訓(xùn)機(jī)構(gòu),進(jìn)行專業(yè)和系統(tǒng)的學(xué)習(xí)。