使用 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))
运行截图:

