from selenium import webdriver
import time,csv
class music163: #定义类
def init(self,ranking):
self.ranking = ranking #静态函数:输入要查询的排行榜名称
def run(self):
driver = webdriver.Chrome(r'd:\chromedriver.exe') #调用webdriver驱动
url = 'https://music.163.com/'
driver.get(url) #访问网易云
driver.maximize_window() #最大化窗口
driver.implicitly_wait(10) # 隐式等待
driver.find_element_by_xpath('//a[@data-module="toplist"]').click() #进入排行榜框架
driver.implicitly_wait(10) # 隐式等待
driver.switch_to.frame('contentFrame') #元素定位跳转到iframe框架下
rankings = driver.find_elements_by_xpath('//a[@class="s-fc0"]') #获取排行榜信息
for rank in rankings: # 遍历排行榜
if rank.text==self.ranking: #定位到需要查询的排行榜名称
rank.click() #点击进入
driver.implicitly_wait(10) # 隐式等待
self.songlist(driver) #获取排行榜歌曲列表并打印
break #跳出循环
def songlist(self,driver): #获取排行榜歌曲列表
songs = driver.find_elements_by_xpath('//span[@class="txt"]//b[@title]') #获取该排行榜下的所有歌曲名称
for song in songs: #遍历该排行榜歌曲
print(song.text) #打印输出
rankingname = input(“请输入要查询的榜单名称:”)
music163(ranking=rankingname).run() #调用该类