import requests,os,json,base64
from scrapy.selector import Selector
from  binascii import hexlify
from Crypto.Cipher import AESclass Encrypyed():
    '''传入歌曲的ID,加密生成'params''encSecKey 返回'''
    def __init__(self):
        self.pub_key = '010001'
        self.modulus = '00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7'
        self.nonce = '0CoJUm6Qyw8W8jud'

    def create_secret_key(self, size):
        return hexlify(os.urandom(size))[:16].decode('utf-8')def aes_encrypt(self,text, key):
        iv = '0102030405060708'
        pad = 16 - len(text) % 16
        text = text + pad * chr(pad)encryptor = AES.new(key, AES.MODE_CBC, iv)result = encryptor.encrypt(text)result_str = base64.b64encode(result).decode('utf-8')return result_strdef rsa_encrpt(self,text, pubKey, modulus):
        text = text[::-1]rs = pow(int(hexlify(text.encode('utf-8')), 16), int(pubKey, 16), int(modulus, 16))return format(rs, 'x').zfill(256)def work(self,ids,br=128000):
        text = {'ids': [ids], 'br': br, 'csrf_token': ''}text = json.dumps(text)i=self.create_secret_key(16)encText =self.aes_encrypt(text, self.nonce)encText=self.aes_encrypt(encText,i)encSecKey=self.rsa_encrpt(i,self.pub_key,self.modulus)data = {'params': encText, 'encSecKey': encSecKey}return datadef search(self,text):
        text = json.dumps(text)i = self.create_secret_key(16)encText = self.aes_encrypt(text, self.nonce)encText = self.aes_encrypt(encText, i)encSecKey = self.rsa_encrpt(i, self.pub_key, self.modulus)data = {'params': encText, 'encSecKey': encSecKey}return dataclass search():
    '''跟歌单直接下载的不同之处,1.就是headersreferer
                              2.加密的text内容不一样!
                              3.搜索的URL也是不一样的
        输入搜索内容,可以根据歌曲ID进行下载,大家可以看我根据跟单下载那章,自行组合
                                '''
    def __init__(self):
        self.headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36','Host': 'music.163.com','Referer': 'http://music.163.com/search/'} ###!!注意,搜索跟歌单的不同之处!!
        self.main_url='http://music.163.com/'
        self.session = requests.Session()self.session.headers=self.headersself.ep=Encrypyed()def search_song(self, search_content,search_type=1, limit=9):
        """
        根据音乐名搜索
      :params search_content: 音乐名
      :params search_type: 不知
      :params limit: 返回结果数量
      return: 可以得到id 再进去歌曲具体的url
        """
        url = 'http://music.163.com/weapi/cloudsearch/get/web?csrf_token='
        text = {'s': search_content, 'type': search_type, 'offset': 0, 'sub': 'false', 'limit': limit}data = self.ep.search(text)resp = self.session.post(url, data=data)result = resp.json()if result['result']['songCount']<= 0:
            print('搜不到!!')else:
            songs = result['result']['songs']for song in songs:
                song_id,song_name,singer,alia = song['id'],song['name'],song['ar'][0]['name'],song['al']['name']print(song_id,song_name,singer,alia)if __name__ == '__main__':
    d=search()d.search_song('爱多一次痛多一次')

结果!

152390 爱多一次痛多一次 谭咏麟 二十年白金畅销金曲全记录
153841 爱多一次,痛多一次(粤) 谭咏麟 爱的盛筵 粤语纪念版
150763 爱与哀愁 童安格 爱与哀愁
154224 爱多一次痛多一次 谭咏麟 笑看人生
5245634 爱多一次痛多一次 谭咏麟 广东经典101
154096 爱多一次痛多一次 谭咏麟 经典金曲
153722 爱多一次痛多一次(Live) - live 谭咏麟 谭咏麟 94纯金曲演唱会(香港大球场)
5280973 爱多一次痛多一次 谭咏麟 鼓舞飞扬
150601 爱与哀愁 童安格 20世纪中华歌坛名人百集珍藏版

python 在网易云搜索歌曲,得到歌曲ID,歌名等信息,可自行下载!相关推荐

  1. python网易云热歌榜歌曲信息爬取(iframe框架内数据爬取,src为空)

    为一线医护人员加油! 为武汉加油! 为中国加油! 为世界加油! 此爬虫是本人参考了了一位前辈的文章,并修改和优化了代码: 1.改为python3环境: 2.优化了抓取的歌曲时长中带一长串小数的问题: ...

  2. python爬虫网易云音乐评论最多的歌_Python网易云音乐评论爬虫,歌曲的全部评论...

    用过网易云音乐听歌的朋友都知道,网易云音乐每首歌曲后面都有很多评论,热门歌曲的评论更是接近百万或者是超过百万条.现在我就来分享一下如何爬取网易云音乐歌曲的全部评论,由于网易云音乐的评论都做了混淆加密处 ...

  3. python爬取网易云音乐生成王力宏歌曲词云

    python爬取网易云音乐生成王力宏歌曲词云 # -*- coding:utf-8 -*- # 网易云音乐,通过歌手id生成词云 import requests import sys,re,os fr ...

  4. 用python爬取网易云评论10w+的歌曲名_Python爬取网易云音乐评论热门歌曲和ID

    一.构造歌手个人主页的URL 前段时间我们获取了网易云音乐全部歌手的id号,今天我们就利用全部歌手的id号来构造歌手个人主页的URL,从而实现用爬取全部歌手的热门歌曲及其id号的目的.以歌手 薛之谦的 ...

  5. 用python爬取网易云评论10w+的歌曲名_Python3爬取网易云音乐评论

    |下载W3Cschool手机App,0基础随时随地学编程>>戳此了解| 导语 利用Python为自己喜欢的音乐制作专属词云.至于词的来源嘛,当然是对应歌曲的所有评论或者热门评论啦!!!毕竟 ...

  6. 树莓派4B命令行安装网易云音乐播放在线歌曲

    手把手教你在树莓派上配置网易云音乐播放在线歌曲 0 鸣谢 首先鸣谢github上的开源贡献者ZHANG RT为我们开发如此优秀的脚本Free Free Free 感谢为MusicBox的开发付出过努力 ...

  7. java爬虫实战(3):网易云音乐评论,歌曲,歌单,歌词下载

    java爬虫实战(3):网易云音乐评论,歌曲,歌单,歌词下载 *本实战仅作为学习和技术交流使用,转载请注明出处: *此文章很早便在草稿箱中,由于编写时事情较多,临时中断,现暂时发表,后续补上(2019 ...

  8. 大数据信息资料采集:网易云音乐QQ音乐歌曲基本信息及评论采集爬虫

    大数据信息资料采集:网易云音乐QQ音乐歌曲基本信息及评论采集 数据采集满足多种业务场景:适合产品.运营.销售.数据分析.政府机关.电商从业者.学术研究等多种身份职业. 舆情监控:全方位监测公开信息,抢 ...

  9. Python的网易云音乐数据分析系统 爬虫 echarts可视化 Flask框架 音乐推荐系统 源码下载

    Python的网易云音乐数据分析系统 爬虫 echarts可视化 Flask框架 音乐推荐系统 一.技术说明 网易云音乐数据(歌单.用户.歌词.评论)Python爬取Flask框架搭建ECharts. ...

最新文章

  1. 63.不同的路径II
  2. 如果提高声音测距的分辨率?
  3. vim在退出时,处理隐藏缓冲区的方式
  4. android viewflipper图片轮播,使用ViewFlipper实现图片轮播
  5. 程序员一夜暴富捷径?不,别被轻易骗进“独角兽”
  6. mysql截取栏目字符_substring从指定字符串开始截取(图)
  7. SqlServer-COMPUTE BY
  8. PWN-PRACTICE-BUUCTF-16
  9. node开发命令行脚本
  10. android学习十三(android的通知使用)
  11. Java抽象类(Abstract Class)与接口(Interface)区别
  12. 掌握搜索引擎优化方法使关键词快速排名
  13. Excel - Office Excel 多表无法多窗口问题
  14. 数学概念: 导数和切线方程
  15. Windows 技术篇-修改hosts添加域名解析实例演示,设置域名指定ip方法
  16. Rust之crate
  17. 网络131黄宇倩--第二周作业
  18. 求薪水最高的第6到第10个人
  19. 使用jQuery仿制网易云音乐移动端
  20. linux 编译安装TRMPdump(libRTMP)

热门文章

  1. 021 DNS qi pian与DY网站
  2. h5页面自定义字体_UIWebView使用app内自定义字体
  3. Hibernate 和 JPA
  4. 你应该知道的前端安全性
  5. 浅谈消息队列及常见的分布式消息队列中间件
  6. Abaqus纤维混凝土3D 泡沫混凝土 三维随机几何 三维混凝土细观 多面体骨料建模
  7. 最大吞吐量和信道利用率
  8. ios状态栏变黑问题解决
  9. U盘无法识别,在别人电脑能使用,自己无法使用
  10. linux命令 free -h,Linux服务器free命令查看内存使用情况