Exemplo n.º 1
0
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()
Exemplo n.º 2
0
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))
Exemplo n.º 3
0
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))
Exemplo n.º 4
0
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
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
    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("---------------全部评论已经爬取完毕!---------------")
Exemplo n.º 7
0
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))
Exemplo n.º 8
0
#!/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}")

Exemplo n.º 9
0
#!/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()
        """
Exemplo n.º 10
0
    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("没有找到音乐信息哦,请先搜索吧!")
Exemplo n.º 11
0
#!/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 ")