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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

网易云音乐的所有歌手列表

發布時間:2023/12/9 编程问答 89 豆豆
生活随笔 收集整理的這篇文章主要介紹了 网易云音乐的所有歌手列表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

1.首頁訪問

2.解析各類歌手url

3.訪問剛剛獲取到的五大分類里面的鏈接,進入到每類歌手的界面

4.請求每個字母的鏈接,獲取到對應的歌手列表,獲取歌手信息



網易云音樂的網址:https://music.163.com/

1.首頁訪問

我們的需求是要爬取網易云音樂的所有歌手,點擊歌手,

得到接口:https://music.163.com/discover/artist

這里有個問題需要注意一下,我們注意到當我們在網頁上點擊歌手之后,網址是https://music.163.com/#/discover/artist

但是我們寫好代碼請求這個頁面的時候是獲取不到的,所以我們請求的接口應該把中間的那個#去掉,寫成:https://music.163.com/discover/artist

# 首頁訪問 url = 'https://music.163.com/discover/artist' headers = {'user-agent': "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"} response = requests.get(url=url, headers=headers) content = response.content.decode('utf-8') with open('wangyiyun.html', 'w', encoding='utf-8') as fp:fp.write(content)

2.解析各類歌手url

首先我們看到歌手先有五種分類:華語,歐美,日本,韓國,其他

在前端頁面都被寫在class="blk"的div標簽里面

先把這幾類下面的每種鏈接都獲取出來

我們可以看到鏈接到放到每一個div>ul>li>a:href

但是a標簽href里面的標簽不完整,需要拼接一下

鏈接格式應該是:‘https://music.163.com’+‘/discover/artist/cat?id=1001’

代碼實現如下所示:

# 解析各類歌手url tree = etree.HTML(content) group_list = tree.xpath('//div[@class="blk"]') print(len(group_list)) for group in group_list:# 歌手分類group_name = group.xpath('.//a/text()')# print(group_name)# 鏈接group_link = group.xpath('.//a/@href')# print(group_link)for i, j in zip(group_name, group_link):# 歌手地址link = 'https://music.163.com' + j

3.訪問剛剛獲取到的五大分類里面的鏈接,進入到每類歌手的界面

在這里我們以華語男歌手為例,可以看到頁面上展示出來的歌手肯定不全,上面有一欄寫著熱門,A.B.C.D........

我們把A.B.C.D......這些都遍歷出來,就可以完整的爬取到歌手了

打開F12分析一下界面

(1)可以看到A.B.C.D.....對應的是class="n-ltlst f-cb"的ul標簽下面的li元素

但是我們不需要獲取熱門里面的內容,所以要把第一個li去掉

這里有兩種方法:pop(0) ; xpath的位謂語position()>1進行限制

(2)獲取每個字母下面的鏈接:

很容易看見是在上面找的li元素的a標簽的href屬性里面

鏈接地址同樣也需要拼接

代碼實現如下:

singer_content = requests.get(link).content.decode('utf-8')tree = etree.HTML(singer_content)singer_url = tree.xpath('//ul[@class="n-ltlst f-cb"]/li[position()>1]/a/@href')print(singer_url)for url in singer_url:full_url = 'https://music.163.com' + urlprint(full_url)

4.請求每個字母的鏈接,獲取到對應的歌手列表,獲取歌手信息

每一個歌手的信息都寫在class="m-sgerlist"的div標簽的ul>li標簽

歌手的名字都在div>ul>li>p>a>text()

代碼實現:

singer_info = requests.get(full_url).content.decode('utf-8') tree = etree.HTML(singer_info) li_list = tree.xpath('//div[@class="m-sgerlist"]/ul/li/a/text()') for li in li_list:print(li)

?

總結

以上是生活随笔為你收集整理的网易云音乐的所有歌手列表的全部內容,希望文章能夠幫你解決所遇到的問題。

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