python 抓取網易雲使用者的聽歌排行

2021-08-07 13:30:30 字數 2337 閱讀 6002

本文使用到的工具是selenium。簡單的多selenium就是乙個web自動化測試工具,提供ide以及外掛程式多種方式。

本文的目標是使用selenium抓取網易雲**使用者的所有時間的聽歌排行。

下面結合**解釋:

from selenium import webdriver

import selenium.webdriver.support.ui as ui

# 儲存為文字

defwrite2txt

(data,path):

file = open(path,"w")

file.write(data)

file.close()

driver.get("")#需要抓取的使用者鏈結,這裡注意的是這裡的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!')

data+=driver.find_element_by_id('rheader').find_element_by_tag_name('h4').text+'\n'

print(data)#抓取使用者聽了多少首歌

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+=temp+'\n'

finally:

driver.quit()

write2txt(data,'./data/songs.txt')#儲存檔案中

執行完畢可以看到songs.txt檔案的生成。

這裡給出結果示例作為參考:

累積聽歌4157首

歌曲名:為你我受冷風吹 歌手:林憶蓮 頻率:width

: 100%;

歌曲名:演員 歌手:薛之謙 頻率:width

: 91%;

歌曲名:悟空 歌手:戴荃 頻率:width

: 78%;

歌曲名:一生中最愛 (live) - live 歌手:陳奕迅 頻率:width

: 73%;

歌曲名:好久不見 歌手:陳奕迅 頻率:width

: 70%;

歌曲名:女兒情 歌手:萬曉利 頻率:width

: 70%;

歌曲名:山丘 歌手:李宗盛 頻率:width

: 62%;

歌曲名:離人 歌手:張學友 頻率:width

: 60%;

歌曲名:董小姐 歌手:宋冬野 頻率:width

: 60%;

歌曲名:藏起來 歌手:倪安東 頻率:width

: 59%;

歌曲名:活著 歌手:郝雲 頻率:width

: 57%;

歌曲名:break again(original mix) 歌手:jack howes 頻率:width

: 55%;

歌曲名:她說 歌手:林俊傑 頻率:width

: 55%;

歌曲名:天後 歌手:陳勢安 頻率:width

: 55%;

歌曲名:追夢赤子心 歌手:gala 頻率:width

: 55%;

歌曲名:紅玫瑰(國) 歌手:陳奕迅 頻率:width

: 55%;

歌曲名:愛的勇氣 歌手:曲婉婷 頻率:width

: 55%;

....

對網易有道詞典的資訊抓取

首先需要檢視它的xhr,由此來構造爬蟲 有道翻譯使用requests import requests import time,random,hashlib 生成data中salt和sign兩個資料 def salt sign keyword m hashlib.md5 now time int ti...

F5攜手聽雲提公升使用者使用體驗

2016年5月24日,全球領先的應用交付網路廠商f5 networks nasdaq ffiv 在 f5 2016 agility 合作夥伴 溝通會上宣布,f5公司與國內領先的應用效能管理 apm 服務提供商聽雲結成戰略合作夥伴,一同為更好的提公升使用者體驗而努力。該合作在雙方發揮各自優勢技術的基礎...

python 網易雲信API傳送簡訊

coding utf 8 import hashlib import time import requests defsend code mobile url nonce 隨機數 最大長度128個字元 curtime 當前utc時間戳,從1970年1月1日0點0 分0 秒開始到現在的秒數 strin...