def lyrics_save(music_id): song = cloudmusic.getMusic(music_id) name = name_stdize(song.name) lyrics = lyrics_stdize(song.getLyrics()[0]) file = open(name, 'w', encoding='utf-8') file.write(lyrics) file.close()
def downloadone(): music_list = cloudmusic.search(e1.get(),1) for i in music_list: Id = i.id name = i.name musicid = cloudmusic.getMusic(Id) musicid.download(level='standard') messagebox.showinfo(message="{}下载成功".format(name))
def downloadall(): music_list = cloudmusic.search(e1.get(),5) for music in music_list: name = music.name Id = music.id musicid = cloudmusic.getMusic(Id) musicid.download(level='standard') messagebox.showinfo(message="{}下载成功".format(name))
def crawl_song(crawl_obj): music = cloudmusic.getMusic(crawl_obj.id) song = Song(music.name, crawl_obj.id) os.chdir("cache/songs") lyrics_save(song.id) #os.chdir("../../") return song
def test_getMusic(self): music_obj = cloudmusic.getMusic(1486622313) for l in music_obj.available_levels: try: music_obj.download(dirs="tmp", level=l) print("level {} 获取成功 {}".format(l, music_obj.bitrate)) except (cloudmusic.MusicLevelNotAvailableException, cloudmusic.MusicNotFoundException): print("level {} 获取失败".format(l)) self.assertIsNotNone(music_obj) pass
def output_comments(self,id):#显示爬取的评论 music = cloudmusic.getMusic(id) coms = music.getHotComments() self.ui.comment_textEdit.insertPlainText("---------------热评---------------\n") for com in coms: timeStamp = (com['time']) / 1000 dateArray = datetime.datetime.fromtimestamp(timeStamp) otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S") self.ui.comment_textEdit.insertPlainText( f'评论:[ {com["content"].strip()} ]-----用户昵称:({com["nickName"]})-----点赞数:{com["likeCount"]}-----时间:{otherStyleTime}\n\n') try: for i in range(0, 400, 20): self.ui.comment_textEdit.insertPlainText('---------------第 ' + str(i // 20 + 1) + ' 页---------------\n\n') list_info = self.get_comments(i,id) for j in range(20): self.ui.comment_textEdit.insertPlainText( f'评论:[ {list_info[j][1]} ]-----用户昵称:({list_info[j][0]})-----点赞数:{list_info[j][2]}-----时间:{list_info[j][3]}\n\n') except IndexError: self.ui.comment_textEdit.insertPlainText("---------------全部评论已经爬取完毕!---------------")
import cloudmusic import os print("请输入想干的事情\n1.下载单曲音乐\n2.下载歌单\n3.下载专辑\n") todo = input("你的选择是: ") if (todo == "1"): songid = input("请输入歌曲id: ") music = cloudmusic.getMusic(songid) print("歌名:{}".format(music.name)) print("歌手:{}".format(music.artist)) print("专辑:{}".format(music.album)) print("音频文件url:{}".format(music.url)) os.system("aria2c --split 200 " + "\"" + music.url + "\"" + " " + "-o " + "\"" + music.name + ".m4a" + "\"") elif (todo == "2"): playlist1 = input("请输入歌单id: ") playlist = cloudmusic.getPlaylist(playlist1) for music in playlist: print("歌名:{}".format(music.name)) print("歌手:{}".format(music.artist)) print("专辑:{}".format(music.album)) print("音频文件url:{}".format(music.url)) os.system("aria2c --split 200 " + "\"" + music.url + "\"" + " " + "-o " + "\"" + music.name + ".m4a" + "\"") elif (todo == "3"): album1 = input("请输入专辑id: ") album = cloudmusic.getAlbum(album1) for music in album: print("歌名:{}".format(music.name)) print("歌手:{}".format(music.artist)) print("专辑:{}".format(music.album))
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/05/26 下午 7:34 # @Author : 殇夜殇雪 # @File : 音乐属性.py import cloudmusic i = input("请输入歌曲ID:_______") 音乐 = cloudmusic.getMusic(i) print(type(音乐)) print(f"歌名:{音乐.name}") print(f"ID:{音乐.id}") print(f"歌手:{音乐.artist[0]}") print(f"歌手ID:{音乐.artistId[0]}") print(f"专辑名称:{音乐.album}") print(f"专辑ID:{音乐.albumId}") print(f"音频文件大小:{音乐.size}kb") print(f"专辑图片url:{音乐.picUrl}") print(f"音乐URL:{音乐.url}") print(f"音乐文件类型:{音乐.type}")
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/05/27 下午 2:46 # @Author : 殇夜殇雪 # @File : 歌词.py import re import cloudmusic 音乐 = cloudmusic.getMusic(1372060183) 歌词 = 音乐.getLyrics()[0] 歌词_list = 音乐.getLyrics() print(歌词_list) print(歌词) x = re.findall(r"](.*)\n", 歌词) for i in x: print(i) """ with open("歌词空.txt", "a", encoding='utf-8')as f: f.write(i) f.close() """
def in_excel(self):#把评论写入excel headers = { 'Host': 'music.163.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36' } """ 获取评论信息 """ id = self.ui.comment_id_Edit.toPlainText() name = self.ui.comment_name_textEdit.toPlainText() list_info_ct = [] music = cloudmusic.getMusic(id) coms = music.getHotComments() for com in coms: timeStamp = (com['time']) / 1000 dateArray = datetime.datetime.fromtimestamp(timeStamp) otherStyleTime = dateArray.strftime("%Y-%m-%d %H:%M:%S") info = [] info.append(com["nickName"]) info.append(com["likeCount"]) info.append(otherStyleTime) info.append(com["content"].strip().replace('\n', '').replace(',', ',')) list_info_ct.append(info) try: for page in range(0,1020,20): url = f'http://music.163.com/api/v1/resource/comments/R_SO_4_{id}?limit=20&offset=' + str(page) response = requests.get(url=url, headers=headers) # 将字符串转为json格式 result = json.loads(response.text) items = result['comments'] for item in items: info = [] # 用户名 user_name = item['user']['nickname'].replace(',', ',') # 评论内容 comment = item['content'].strip().replace('\n', '').replace(',', ',') # 评论点赞数 praise = str(item['likedCount']) # 评论时间 date = time.localtime(int(str(item['time'])[:10])) date = time.strftime("%Y-%m-%d %H:%M:%S", date) info.append(user_name) info.append(praise) info.append(date) info.append(comment) list_info_ct.append(info) book = xlwt.Workbook(encoding='utf-8', style_compression=0) # 创建workbook对象 sheet = book.add_sheet("网易云评论", cell_overwrite_ok=True) # 创建工作表 col = ("用户昵称","点赞数","发布时间","评论") for i in range(4): sheet.write(0, i, col[i]) # 列名 for i in range(len(list_info_ct)): data = list_info_ct[i] for j in range(4): sheet.write(i + 1, j, data[j]) # 数据 book.save(f"{name}.xls") self.ui.comment_show_label.setText("生成完毕!") except KeyError: self.ui.comment_show_label.setText("没有找到音乐信息哦,请先搜索吧!")
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/05/27 下午 3:39 # @Author : 殇夜殇雪 # @File : 下载.py import cloudmusic import io import sys sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='gb18030') 歌名 = input("请输入歌曲:") 搜索 = cloudmusic.search(歌名, 20) for i in range(len(搜索)): print(f"第:{i+1}首{搜索[i].name}") zz = f"作者:{搜索[i].artist[0]}" s = f"歌曲ID:{搜索[i].id}" print(s) print(zz) ID = input("对应歌的ID:") 下载 = cloudmusic.getMusic(ID) 下载.download("D:\Pycharm\普通程序\爬虫\音乐", level=" lossess ")