抓取网易云音乐用户的听歌记录#
https://blog.csdn.net/android_ruben/article/details/77692455
from selenium import webdriver
import selenium.webdriver.support.ui as ui
driver = webdriver.Chrome(executable_path='/Users/datalab/downloads/chromedriver2')
driver.get("http://music.163.com/#/user/songs/rank?id=39686047")#需要抓取的用户链接,这里注意的是这里的id不是用户的id,而是用户听歌形成的所有时间排行的排行版的id
driver.switch_to.frame('g_iframe') # 从windows切换到frame,切换到歌曲列表所在的frame
data=[]#用来保存数据
try:
wait = ui.WebDriverWait(driver, 15)
#找到歌曲列表所在的父标签
if wait.until(lambda driver: driver.find_element_by_class_name('g-bd')):
print('success!')
title = ''
title+=driver.find_element_by_id('rHeader').find_element_by_tag_name('h4').text+'\n'
print(title)#抓取用户听了多少首歌
lists = driver.find_element_by_class_name('m-record').find_elements_by_tag_name('li')
print(len(lists))#网易只给出了前100首听的最频繁的歌
for l in lists:
temp='歌曲名:'+l.find_element_by_tag_name('b').text+' 歌手:'+l.find_element_by_class_name('s-fc8').text.replace('-','')+' 频率:'+l.find_element_by_class_name('bg').get_attribute('style')
print(temp)#解析出歌名 歌手 频率
data.append(temp)
finally:
driver.quit()
success!
累积听歌2575首
100
歌曲名:Anifled 歌手:Pianoboy高至豪 频率:width: 100%;
歌曲名:The truth that you leave 歌手:Pianoboy高至豪 频率:width: 96%;
歌曲名:偏偏喜欢你 歌手:陈百强 频率:width: 69%;
歌曲名:Annabelle 歌手:Pianoboy高至豪 频率:width: 65%;
歌曲名:逆流成河 歌手:金南玲 频率:width: 60%;
歌曲名:钢琴课:是否真的开心/尼曼 歌手:Various Artists 频率:width: 55%;
歌曲名:Forgive Me 歌手:CMA 频率:width: 52%;
歌曲名:BINGBIAN病变 (女声版) 歌手:鞠文娴 频率:width: 50%;
歌曲名:老街 歌手:李荣浩 频率:width: 48%;
歌曲名:等一分钟 歌手:徐誉滕 频率:width: 46%;
歌曲名:City 歌手:羽肿 频率:width: 41%;
歌曲名:白昼之夜 歌手:林隆璇 频率:width: 39%;
歌曲名:Sad Angel 歌手:伊戈尔.克鲁托伊 频率:width: 39%;
歌曲名:Don Coi (Instrumental) 歌手:Truong Quynh Anh 频率:width: 36%;
歌曲名:周杰伦歌曲串烧 歌手:BEC包子 频率:width: 33%;
歌曲名:白色羽毛 歌手:芮恩 频率:width: 32%;
歌曲名:Ce Frumoasa E Iubirea 歌手:Giulia 频率:width: 30%;
歌曲名:Faded (Instrumental) 歌手:Alan Walker 频率:width: 29%;
歌曲名:蓝色土耳其 歌手:周传雄 频率:width: 29%;
歌曲名:Let Her Go 歌手:Passenger 频率:width: 28%;
歌曲名:Negative Things 歌手:Selwyn 频率:width: 28%;
歌曲名:Take My Hand 歌手:Omar Akram 频率:width: 27%;
歌曲名:Mirror Night 歌手:V.K克 频率:width: 26%;
歌曲名:Set Fire To The Rain 歌手:Piano Tribute Players 频率:width: 25%;
歌曲名:A Walk In The Rain 歌手:Yanni 频率:width: 24%;
歌曲名:绅士 歌手:薛之谦 频率:width: 23%;
歌曲名:Inspire 歌手:Capo Productions 频率:width: 22%;
歌曲名:红色高跟鞋 歌手:蔡健雅 频率:width: 21%;
歌曲名:A New Day 歌手:Mark Petrie 频率:width: 21%;
歌曲名:Tassel 歌手:Cymophane 频率:width: 21%;
歌曲名:死不了 歌手:任贤齐 频率:width: 21%;
歌曲名:三人游 歌手:方大同 频率:width: 21%;
歌曲名:Going home 歌手:Kenny G 频率:width: 20%;
歌曲名:ALONE ON THE WAY 歌手:Pianoboy高至豪 频率:width: 20%;
歌曲名:钟无艳 歌手:谢安琪 频率:width: 19%;
歌曲名:Wild Sea 歌手:Roberto Cacciapaglia 频率:width: 19%;
歌曲名:越来越不懂 歌手:蔡健雅 频率:width: 18%;
歌曲名:Here We Are Again 歌手:CAGNET/日向大介 频率:width: 18%;
歌曲名:เจอกับตัวเอง...ถึงรู้ 歌手:Sara Nusara Poongprasert 频率:width: 18%;
歌曲名:镜夜 歌手:V.K克 频率:width: 18%;
歌曲名:漂洋过海来看你 歌手:李宗盛 频率:width: 18%;
歌曲名:Young For You 歌手:GALA 频率:width: 17%;
歌曲名:Sky High 歌手:Thomas Prime 频率:width: 16%;
歌曲名:用心良苦 歌手:张崇德 频率:width: 15%;
歌曲名:卡农变奏曲 歌手:K. Williams 频率:width: 15%;
歌曲名:The Heart Asks Pleasure First 歌手:Michael Nyman 频率:width: 15%;
歌曲名:Breath and Life 歌手:Audiomachine 频率:width: 15%;
歌曲名:算什么男人 歌手:周杰伦 频率:width: 14%;
歌曲名:Against All Odds 2006 (Take A Look At Me Now) (Cinema Sax Album Version) 歌手:Sam Levine 频率:width: 14%;
歌曲名:演员 歌手:薛之谦 频率:width: 14%;
歌曲名:Layee 歌手:Pianoboy高至豪 频率:width: 13%;
歌曲名:陌生人 歌手:蔡健雅 频率:width: 13%;
歌曲名:Apologize 歌手:OneRepublic 频率:width: 13%;
歌曲名:Lonely Day 歌手:Jurrivh 频率:width: 13%;
歌曲名:逍遥叹 歌手:胡歌 频率:width: 13%;
歌曲名:Take a bow 歌手:Rihanna 频率:width: 12%;
歌曲名:追梦赤子心 歌手:GALA 频率:width: 12%;
歌曲名:Anifled 歌手:Pianoboy高至豪 频率:width: 12%;
歌曲名:走着走着就散了 歌手:庄心妍 频率:width: 12%;
歌曲名:祝你幸福 歌手:黄奕蓉 频率:width: 12%;
歌曲名:The Beginning 歌手:Ryan 频率:width: 11%;
歌曲名:Five Hundred Miles 歌手:Justin Timberlake/Carey Mulligan/Stark Sands 频率:width: 11%;
歌曲名:we're turning into regular people 歌手:the tumbled sea 频率:width: 11%;
歌曲名:无底洞 歌手:蔡健雅 频率:width: 11%;
歌曲名:Tonight I Wanna Cry 歌手:Keith Urban 频率:width: 11%;
歌曲名:Still Water 歌手:Maksim Mrvica 频率:width: 11%;
歌曲名:千言万语 歌手:韩磊 频率:width: 11%;
歌曲名:飘雪 歌手:陈慧娴 频率:width: 10%;
歌曲名:海边的留言 歌手:Pianoboy高至豪 频率:width: 10%;
歌曲名:离人 歌手:林志炫 频率:width: 10%;
歌曲名:Sundial Dreams 歌手:Kevin Kern 频率:width: 10%;
歌曲名:Autumn 歌手:July 频率:width: 10%;
歌曲名:Serenade 歌手:Jim Brickman 频率:width: 9%;
歌曲名:再见二丁目 歌手:杨千嬅 频率:width: 9%;
歌曲名:想太多 歌手:李玖哲 频率:width: 9%;
歌曲名:Run Away with Me 歌手:Omar Akram 频率:width: 9%;
歌曲名:Brotherhood 歌手:John Dreamer 频率:width: 9%;
歌曲名:无赖 歌手:郑中基 频率:width: 9%;
歌曲名:梦一场 歌手:萧敬腾 频率:width: 9%;
歌曲名:一万个舍不得 歌手:庄心妍/祁隆 频率:width: 9%;
歌曲名:Dream Of A Dream 歌手:Epistra 频率:width: 8%;
歌曲名:Traveling Light 歌手:Joel Hanson/Sara Groves 频率:width: 8%;
歌曲名:英雄的黎明 歌手:横山菁児 频率:width: 8%;
歌曲名:爱 歌手:莫文蔚 频率:width: 8%;
歌曲名:Will and Elizabeth 歌手:Klaus Badelt 频率:width: 8%;
歌曲名:卡农钢琴随弹(Cover 卡农) 歌手:Keyshawn Binean 频率:width: 8%;
歌曲名:菊次郎的夏天 歌手:K. Williams 频率:width: 8%;
歌曲名:Susan说 歌手:陶喆 频率:width: 8%;
歌曲名:杏花弦外雨 歌手:CRITTY/司夏 频率:width: 8%;
歌曲名:Open Window (Original Mix) 歌手:MitiS/Anna Yvette 频率:width: 8%;
歌曲名:You're Beautiful 歌手:James Blunt 频率:width: 8%;
歌曲名:我在那一角落患过伤风(钢琴版) 歌手:群星 频率:width: 8%;
歌曲名:暗香 歌手:韩磊 频率:width: 8%;
歌曲名:what for? 歌手:sAr 频率:width: 8%;
歌曲名:过云雨 歌手:张敬轩 频率:width: 7%;
歌曲名:Journey 歌手:Capo Productions 频率:width: 7%;
歌曲名:夜的钢琴曲五 歌手:石进 频率:width: 7%;
歌曲名:A Little Story 歌手:Valentin 频率:width: 7%;
歌曲名:Free Loop 歌手:Daniel Powter 频率:width: 7%;
歌曲名:白色羽毛 歌手:芮恩 频率:width: 7%;
# 存储为文本
def write2txt(data,path):
file = open(path,"w")
file.write(data)
file.close()
#write2txt(data,'./data/songs.txt')#保存文件中
data[:3]
['歌曲名:Anifled 歌手:Pianoboy高至豪 频率:width: 100%;',
'歌曲名:The truth that you leave 歌手:Pianoboy高至豪 频率:width: 96%;',
'歌曲名:偏偏喜欢你 歌手:陈百强 频率:width: 69%;']