本文来源吾爱破解论坛
本帖最后由 niebaohua 于 2019-4-9 15:03 编辑
楼主编程有点菜
不会网上的教程那样, 去解密post参数
感兴趣的可以去百度
其实也没什么用 学习一下总是好的
这个代码 可以通过歌曲的id, 或者是歌单的链接,
来爬网易云音乐的热评
需要的包有 bs4, requests
pip install 包名进行安装
[Python] 纯文本查看 复制代码
import requests import json from bs4 import BeautifulSoup import time class hotComments: def __init__(self): self.headers = { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36", } #offset页数,limit一页显示最多的评论数 def get_hotComments(self,music_id): self.url = "http://music.163.com/api/v1/resource/comments/R_SO_4_{}?offset=0&limit=50".format(music_id) try: self.text = json.loads(requests.get(self.url, headers=self.headers).text) datas = self.text['hotComments'] except: print("没有找到该歌曲的热评") return print("\n\n\n"+"网易云热评: "+"--------"*20+"\n\n\n") for content in datas: print(content['content']) print("\n\n\n"+"---分--界--线----"*20) def get_music_id(self, urls=None): try: html = requests.get(urls,headers=self.headers).text except: print("请输入正确的网址!!!") return text = BeautifulSoup(html, 'lxml') ids = text.select('.f-hide li a') # print(text) for id in ids: music_id = id.get('href').split('=')[1] self.get_hotComments(music_id) time.sleep(1) if __name__ == '__main__': music = hotComments() while True: print(""" 网易云获取热评: 1. 通过歌曲的id 2. 通过歌单的连接 0. 退出 """) number = 0 try: number = int(input("请输入: ")) except: input("请输入数字") if number == 2: song_url = input("请输入歌单的网址: ") song_url = song_url.replace('/#','') # print(song_url) music.get_music_id(urls=song_url) elif number == 1: id = input("请输入歌曲的id: ") music.get_hotComments(id) elif number == 0: exit() else: print("没有该选项")
下面的是网易云音乐下载的代码, 可能其他人已经发过类似的抱歉
[Python] 纯文本查看 复制代码
import requests import time,os from bs4 import BeautifulSoup class Music_down: def __init__(self): self.headers = { "User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36", } self.url = "http://music.163.com/song/media/outer/url?id=" def get_name_byId(self, id): base_url = "https://music.163.com/song?id={}".format(id) response = requests.get(base_url, headers=self.headers) html = BeautifulSoup(response.text, 'lxml') self.name = html.select('.f-ff2')[0].text response.close() self.download(self.name,id) def download(self, name, id): #这里出现了下载错误 关于歌的名字问题 不能存在/ # name = name.replace('\xa0', '') name = name.replace('/', '') # name = "".join(name.split().remove(" ")) if not os.path.exists('./music'): os.mkdir('./music') print("music文件夹创建成功,在当前目录下") res = requests.get(self.url + id, headers=self.headers) with open('./music/'+name+'.mp3', 'ab+') as f: f.write(res.content) print("*********"+name+"*****下载完成") def get_music_id(self, urls): try: html = requests.get(urls,headers=self.headers).text except: print("请输入正确的网址!!!") return text = BeautifulSoup(html, 'lxml') ids = text.select('.f-hide li a') print("总共%d个文件" % len(ids)) for id in ids: music_id = id.get('href').split('=')[1] name = id.text self.download(name, music_id) time.sleep(1) if __name__ == '__main__': music = Music_down() while True: print(""" 网易云获取热评: 1. 通过歌曲的id 2. 通过歌单的连接 0. 退出 """) number = 0 try: number = int(input("请输入: ")) except: input("请输入数字") if number == 2: song_url = input("请输入歌单的网址: ") song_url = song_url.replace('/#','') # print(song_url) music.get_music_id(song_url) elif number == 1: id = input("请输入歌曲的id: ") music.get_name_byId(id) elif number == 0: exit() else: print("没有该选项")
最后有句话不知当讲不当讲,我也想进影视区瞅瞅
来点免费的热心
附上打包之后的exe文件
32位的可能运行不了
链接:https://pan.baidu.com/s/115SiShnbFHL1G8_oS0T89A 密码:yxgc
32位/64位 网易云音乐下载 链接:https://pan.baidu.com/s/1jbySUJ6vikKJTse0e8bxQg 密码:m33z
版权声明:
本站所有资源均为站长或网友整理自互联网或站长购买自互联网,站长无法分辨资源版权出自何处,所以不承担任何版权以及其他问题带来的法律责任,如有侵权或者其他问题请联系站长删除!站长QQ754403226 谢谢。
- 上一篇: 从图片提取经纬度简易版
- 下一篇: 两个文件去重并写入到第三个文件