日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python网易云爬虫——实现网易云歌词的爬取(输入歌手的id,即可实现歌词的爬取)

發布時間:2023/12/29 python 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python网易云爬虫——实现网易云歌词的爬取(输入歌手的id,即可实现歌词的爬取) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python網易云爬蟲——實現網易云歌詞的爬取(輸入歌手的id,即可實現歌詞的爬取)

開始動手

打開網易云音樂,找到任意一位歌手的歌曲界面(我們以鄧紫棋的《來自天堂的魔鬼》為例)。
第一步:嘗試常規思路,把網頁的源碼爬下來,直接對源碼的分析,提取出來對應的歌詞。上代碼:

import requests #引入request庫 url = 'http://music.163.com/#/song?id=36270426' #網頁的url r = requests.get(url) #用get的方法獲取網頁的源碼 print(r.text) #打印出來

運行結果:

<!doctype html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=7" > <title>網易云音樂</title> <style type="text/css"> /* Reset */ body,html,h1,h2,h3,h4,h5,h6,ul,ol,li,dl,dt,dd,header,menu,section,p,input{padding:0;margin:0;} body{font-family:Microsoft Yahei, Arial, Helvetica, sans-serif; ............中間太長省掉了...................... <div class="g-ft"><div class="g-wrap"><div class="m-copy"><p><a href="//gb.corp.163.com/gb/about/overview.html" target="_blank">關于網易</a><span>|</span><a href="#" target="_blank">關于網易云音樂</a><span>|</span><a href="//help.mail.163.com/service.html" target="_blank">客戶服務</a><span>|</span><a href="#" target="_blank">隱私策略</a><span>|</span><a href="#" target="_blank">常見問題</a> </p><p>網易公司版權所有&copy;1997-2019 &nbsp; 全國文化市場統一舉報電話:12318 </p></div></div> </div> </body> </html> (鬼知道這是什么玩意,賊長)

發現這根本不是我們需要的源碼,根本沒有歌詞。
第二步:在網頁按F12查看元素,點擊網絡,找到post方法中的lyric?csrf_token=,發現真正的url被網易云隱藏掉了。
假的url:
真的url:
發現網易云偷偷的把‘api’換成了“#”,難怪讀取的網頁源碼不對。其而還發現了存在歌詞的url,但是這個url有token認證,可以看到這里需要兩個參數:params和encSecKey,然后瀏覽各大博主的博客,發現一個比較好的繞過方式
第三步:改寫正確的url再試,代碼和上面一樣,就修改一句

url = 'http://music.163.com/api/song/lyric?'+ 'id=' + music_id+ '&lv=1&kv=1&tv=-1'

運行結果

{"code":-460,"msg":"Cheating"}

不信命的我嘗試了N+1次,最終變成了這樣。。。。

{"code":404,"msg":"該資源不存在。"}

這時候只能找百度了,然后就知道了網易云大名鼎鼎的反爬蟲,好吧接著百度反反爬蟲,你有反爬蟲,我就試試能不能繞過。
果然經過一番嘗試,我找到了這個:(點這里) 某位大佬的博客

一、 分析網頁請求頭
1、User-Agent:這個是保存用戶訪問該網站的瀏覽器的信息,我上面這個表示的是我通過window的瀏覽器來訪問這個網站的,如果你是用python來直接請求這個網站的時候,這個的信息會帶有python的字眼,所以網站管理員可以通過這個來進行反爬蟲。
2、Referer:當瀏覽器發送請求時,一般都會帶上這個,這個可以讓網站管理者知道我是通過哪個鏈接訪問到這個網站的,上面就說明我是從網易云音樂的主頁來訪問到這個頁面的,若你是用python來直接請求是,就沒有訪問來源,那么管理者就輕而易舉地判斷你是機器在操作。
3、authorization:有的網站還會有這個請求頭,這個是在用戶在訪問該網站的時候就會分配一個id給用戶,然后在后臺驗證該id有沒有訪問權限從而來進行發爬蟲
二、用戶訪問網站的ip
當你這個ip在不斷地訪問一個網站來獲取數據時,網頁后臺也會判斷你是一個機器。就比如我昨天爬的網易云音樂評論,我剛開始爬的一首《海闊天空》時,因為評論較少,所以我容易就得到所有數據,但是當我選擇爬一首較多評論的《等你下課》時,在我爬到800多頁的時候我就爬不了,這是因為你這個ip的用戶在不斷地訪問這個網站,他已經把你視為機器,所以就爬不了,暫時把你的ip給封了
三、反反爬蟲的方式:
1.添加請求頭
2.使用代理ip

既然知道了,然后開始修改代碼,這里我選用添加請求頭的方式:

import requests music_id=input("請輸入歌手的id:") headers={"User-Agent" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) ","Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language" : "en-us","Connection" : "keep-alive","Accept-Charset" : "GB2312,utf-8;q=0.7,*;q=0.7" url = 'http://music.163.com/api/song/lyric?'+ 'id=' + music_id+ '&lv=1&kv=1&tv=-1' r = requests.get(url,headers=headers,allow_redirects=False) #allow_redirects設置為重定向 print(r.text)

運行結果:
到這里已經算是成功了,歌詞給我們爬下來了,但是還能進一步優化
最終完整代碼

import requests import json music_id=input("請輸入歌手的id:")headers={"User-Agent" : "Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.6) ","Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8","Accept-Language" : "en-us","Connection" : "keep-alive","Accept-Charset" : "GB2312,utf-8;q=0.7,*;q=0.7"} url = 'http://music.163.com/api/song/lyric?'+ 'id=' + music_id+ '&lv=1&kv=1&tv=-1' r = requests.get(url,headers=headers,allow_redirects=False) #allow_redirects設置為重定向的參數 #headers=headers添加請求頭的參數,冒充請求頭json_obj = r.text j = json.loads(json_obj)#進行json解析 print(j['lrc']['lyric'])by 久違 2019.12.10

運行結果:
總結:思路過程,通用方法—網頁分析—token繞過----冒充請求頭—完成爬取
數據爬取之后后面就好辦了,可以加幾行代碼把文件存放到txt文件中,excel表格中或者數據庫中,因人而異。

by 久違 2919.12.10

總結

以上是生活随笔為你收集整理的python网易云爬虫——实现网易云歌词的爬取(输入歌手的id,即可实现歌词的爬取)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 娇妻被老王脔到高潮失禁视频 | 丰满女邻居的色诱4hd | 热久久91 | 国产精品自拍偷拍视频 | 小敏的受孕日记h | 欧美日韩成人在线视频 | 精品三级网站 | 国产成人短视频在线观看 | 亚洲精品一区 | 成 人 黄 色 片 在线播放 | 成年人91视频 | 久久福利视频导航 | 亚洲爱爱视频 | 无码黑人精品一区二区 | 我们2018在线观看免费版高清 | 中文字幕精品三级久久久 | 中文字幕第三页 | 琪琪午夜伦理 | 国产又粗又猛又爽免费视频 | 天天操欧美 | 领导揉我胸亲奶揉下面 | 女人av | 99福利网| 男女扒开双腿猛进入爽爽免费 | 亚洲国产成人无码av在线 | 黄网在线播放 | 成人免费xxxxxx视频 | 久久精品国产av一区二区三区 | 摸大乳喷奶水www视频 | 99热久久这里只有精品 | 日韩欧美中文字幕在线播放 | 在线免费观看 | 久久久久亚洲av无码麻豆 | 亚洲性事 | 亚洲精华液一区二区 | 亚洲操图 | 蜜桃av噜噜一区二区三区网址 | 一本大道伊人av久久综合 | 一区二区国产精品精华液 | 先锋资源国产 | 中国成人毛片 | 国产特级黄色录像 | 天天色综合天天 | www.色悠悠 | 182av| 免费高清视频在线观看 | 色天天色综合 | 97一区二区三区 | 久久精品免费av | 亚洲一区国产精品 | 国产天堂精品 | 国产日本在线播放 | 麻豆久久久9性大片 | 免费视频网站www | 男人的天堂影院 | 国产伦精品一区二区三区网站 | 国产精品成人Av | 国产精品国产三级国产三级人妇 | 亚洲国产精华液网站w | 一区二区三区入口 | 大陆熟妇丰满多毛xxxⅹ | 日韩不卡视频一区二区 | 亚洲熟女一区二区三区 | 久久久久久久成人 | 制服丝袜国产在线 | 国产成人精品aa毛片 | 中文字幕伊人 | 国产不卡一区二区视频 | 国产婷婷色一区二区在线观看 | 91丨九色丨国产 | 性午夜| 国产又粗又猛又爽又黄无遮挡 | 五月亚洲| 国产页| 亚洲免费片 | 欧美xxxbbb | 99福利视频| 拔插拔插影库 | 日本黄色大片免费看 | 西野翔之公侵犯中文字幕 | 国产高清av在线 | 91色噜噜| 日韩v | 天天操天天操天天操天天 | 91日韩在线 | xx视频在线观看 | 久久偷拍免费视频 | 亚洲成人二区 | 亚洲免费福利 | 糖心logo在线观看 | 亚洲AV成人无码精品久久盆瓶 | 午夜一区二区三区免费 | 美女激情av | 爱情岛论坛亚洲自拍 | 成人高清视频在线观看 | 欧美成人黑人猛交 | 婷婷激情网站 | 中国女人一级片 | 亚洲免费观看高清在线观看 |