使用 selenium 浏览器自动化测试框架 爬取网易云音乐电台专栏
代码
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019/7/9 21:02 # @Author : nick # @Site : http://www.isscollege.com/ from selenium import webdriver from selenium.webdriver.chrome.options import Options # 实例化一个启动参数对象 chrome_options = Options() # 设置浏览器以无界面方式运行 # chrome_options.add_argument('--headless') # browser = webdriver.Chrome(chrome_options=chrome_options) browser = webdriver.Chrome() browser.maximize_window() # 窗口最大化 browser.get('https://music.163.com/#/discover/djradio') # URL browser.implicitly_wait(30) # 隐示等待,为了等待充分加载好网址 browser.switch_to.frame("contentFrame")#转换到我们需要的数据的frame,一定不要忘记 result_list = browser.find_element_by_class_name("f-fl").find_elements_by_class_name("itm") #print(result_list) #print(type(result_list)) # 打印列表中的类容 print("推荐节目") for result in result_list: name = result.find_element_by_class_name("s-fc4").text #电台名 subscribe = result.find_element_by_class_name("s-fc1").text #简介 type = result.find_element_by_class_name("u-type").text #类型 url = result.find_element_by_class_name("s-fc1").get_attribute("href") #链接 print("电台名:{},简介:{},类型:{},url:{}".format(name,subscribe,type,url)) print("节目排行榜") result_list = browser.find_element_by_class_name("f-fr").find_elements_by_class_name("itm") for result in result_list: rank = result.find_element_by_class_name("f-fs1").text #排名 name = result.find_element_by_class_name("s-fc1").text #节目名 url = result.find_element_by_class_name("f-fw0").get_attribute("href") #链接 print("排名:{},节目名:{},url:{}".format(rank,name,url))
运行截图: