加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Python数据可视化:网易云音乐歌单

发布时间:2019-01-19 05:13:43 所属栏目:教程 来源:小F
导读:网易云音乐2018年度听歌报告遇见你,真好。 相信有不少人在上周,应该已经看过自己网易云音乐的年度报告了。 小F也是去凑凑热闹,瞅了一波自己的年度听歌报告。 那么你在云村又听了多少首歌,听到最多的歌词又是什么呢? 2018年你的年度歌手又是谁,哪些又

02、歌单详情页

  1. from bs4 import BeautifulSoup 
  2. import pandas as pd 
  3. import requests 
  4. import time 
  5.  
  6. df = pd.read_csv('playlist.csv', header=None, error_bad_lines=False, names=['url', 'title', 'play', 'user']) 
  7.  
  8. headers = { 
  9.     'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' 
  10.  
  11. for i in df['url']: 
  12.     time.sleep(2) 
  13.     url = 'https://music.163.com' + i 
  14.     response = requests.get(url=url, headers=headers) 
  15.     html = response.text 
  16.     soup = BeautifulSoup(html, 'html.parser') 
  17.     # 获取歌单标题 
  18.     title = soup.select('h2')[0].get_text().replace(',', ',') 
  19.     # 获取标签 
  20.     tags = [] 
  21.     tags_message = soup.select('.u-tag i') 
  22.     for p in tags_message: 
  23.         tags.append(p.get_text()) 
  24.     # 对标签进行格式化 
  25.     if len(tags) > 1: 
  26.         tag = '-'.join(tags) 
  27.     else: 
  28.         tag = tags[0] 
  29.     # 获取歌单介绍 
  30.     if soup.select('#album-desc-more'): 
  31.         text = soup.select('#album-desc-more')[0].get_text().replace('n', '').replace(',', ',') 
  32.     else: 
  33.         text = '无' 
  34.     # 获取歌单收藏量 
  35.     collection = soup.select('#content-operation i')[1].get_text().replace('(', '').replace(')', '') 
  36.     # 歌单播放量 
  37.     play = soup.select('.s-fc6')[0].get_text() 
  38.     # 歌单内歌曲数 
  39.     songs = soup.select('#playlist-track-count')[0].get_text() 
  40.     # 歌单评论数 
  41.     comments = soup.select('#cnt_comment_count')[0].get_text() 
  42.     # 输出歌单详情页信息 
  43.     print(title, tag, text, collection, play, songs, comments) 
  44.     # 将详情页信息写入CSV文件中 
  45.     with open('music_message.csv', 'a+', encoding='utf-8-sig') as f: 
  46.         f.write(title + ',' + tag + ',' + text + ',' + collection + ',' + play + ',' + songs + ',' + comments + 'n') 
  47.     # 获取歌单内歌曲名称 
  48.     li = soup.select('.f-hide li a') 
  49.     for j in li: 
  50.         with open('music_name.csv', 'a+', encoding='utf-8-sig') as f: 
  51.             f.write(j.get_text() + 'n') 

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读