日韩性视频-久久久蜜桃-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,即可实现歌词的爬取)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 黄色小电影网址 | 亚洲涩涩涩 | 高清国产在线 | 50一60岁老妇女毛片 | 欧美亚洲在线播放 | 欧美系列第一页 | 国产a自拍 | 国产suv精品一区二区69 | 日本欧美亚洲 | 日韩少妇内射免费播放 | 99视频精品在线 | 熟妇人妻系列aⅴ无码专区友真希 | 春色影视 | 国产激情免费视频 | 四虎tv | 99在线播放| 精品国产一区二区三区无码 | 姝姝窝人体www聚色窝 | 欧美成人不卡视频 | 中文在线不卡 | 影音资源av| 亚洲视频2| 国产伦精品一区三区精东 | jlzzjlzz亚洲女人18 | 91黄色国产 | 国产成人免费片在线观看 | 亚洲综合欧美 | 四虎av影视 | 美女午夜视频 | 爱福利视频网 | 成人毛片18女人 | 国产69精品一区二区 | 亚洲毛茸茸 | 性农村xxxxx小树林 | 久久亚洲私人国产精品va | 久草观看视频 | 日韩精品一区二区三区四区五区 | 情侣黄网站免费看 | 中文字幕人妻一区二区三区视频 | 欧美日韩卡一卡二 | 不卡一区二区在线观看 | 亚洲视频欧洲视频 | 中国农村一级片 | 女性喷水视频 | 2019日韩中文字幕mv | 中文精品在线观看 | 日韩激情一区二区 | 欧美乱妇一区二区三区 | 白洁av| 美女视频黄频视频大全 | 伊人视屏 | 操操网站| 69天堂 | 在线不卡日韩 | 欧美国产精品一区 | 国产精品久久久久久久久晋中 | 精品一区二区三区蜜桃 | 国产小视频在线看 | 日本黄色美女 | 一区视频免费观看 | 2022国产精品 | 高清av一区二区 | 午夜三级网站 | 国产一区日本 | 无毛av| 狠狠搞视频 | 成av人片一区二区三区久久 | 国产人澡人澡澡澡人碰视频 | 一区二区在线免费观看 | 2019天天操 | 人人干人人模 | 中国亚洲女人69内射少妇 | 男人操女人的免费视频 | 亚洲天天av| 国产精品久久久久久久久免费相片 | 日韩精选 | 国产一区网 | 日日舔夜夜操 | 国产最新视频在线 | 久久精品aⅴ无码中文字字幕重口 | 日本熟妇色xxxxx日本免费看 | 精品免费视频一区二区 | 大乳女喂男人吃奶 | xx性欧美肥妇精品久久久久久 | 午夜寂寞剧场 | 夫の上司に犯波多野结衣853 | 私密视频在线观看 | 日韩国产欧美视频 | 熟女少妇a性色生活片毛片 亚洲伊人成人网 | 美女乱淫| h视频在线观看网站 | 日韩大片免费在线观看 | 午夜精品福利一区二区三区蜜桃 | 一本色道久久综合亚洲精品图片 | 重囗另类bbwseⅹhd | 国产第5页 | 国产精品tv| 亚洲AV无码乱码国产精品色欲 | 欧美精品一区二区三区在线 |