web UI自动化 python+selenium 爬取网易云排行榜歌曲列表

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() #调用该类

你可能感兴趣的:(web UI自动化 python+selenium 爬取网易云排行榜歌曲列表)