Python3爬虫之咪咕音乐

import re
import time
import json
import requests


class Migu:
    def __init__(self):
        self.url = "http://music.migu.cn/v3/search?keyword={}"
        self.parse_url = "http://music.migu.cn/v3/api/music/audioPlayer/getPlayInfo?copyrightId={}"
        self.headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36"}
        self.dumps = {'copyrightId': '64046301000'}
        self.count = 0

    def req(self, url):
        # 获取歌曲id 和 歌曲名称
        re_response = requests.get(url, headers=self.headers)
        re_html = re_response.content.decode('utf8')
        re_songid = re.compile('<a href="/v3/music/song/(\d+)" title="(.*?)" target="_blank">.*?</a>', re.S).findall(re_html)
        print('共获取以下歌曲信息:', re_songid)
        return re_songid

    def parse(self, songid):
        url = self.parse_url.format(songid)
        self.dumps['copyrightId'] = songid
        response = requests.get(url, data=json.dumps(self.dumps), headers=self.headers)
        text = json.loads(response.content.decode())
        txt1 = text['walkmanInfo']
        txt = txt1['playUrl']
        # print(txt)
        return txt

    def download(self, txt, song_name):
        self.count = self.count + 1
        with open('%s_%s.mp3' % (song_name, txt), 'wb') as f:
            # 下载mp3文件
            response = requests.get(url=txt)
            f.write(response.content)
            print("下载:%s_%s" % (song_name, txt))
            time.sleep(1)

    def run(self):
        print('请输入要下载的歌曲:')
        text = input()
        print('你输入的歌曲名是:"%s"' % text)
        print('已发送请求!')
        # print(text)
        url = self.url.format(text)
        re_songid = self.req(url)
        for i in re_songid:
            print('暂停3秒~~~')
            time.sleep(3)
            txt = self.parse(i[0])
            print('已获得下载连接!')
            print('暂停3秒~~~')
            time.sleep(3)
            self.download(txt, i[1])


if __name__ == '__main__':
    t1 = Migu()
    t1.run()

以上是通过爬虫咪咕音乐

使用请求登录某些网站的API 文件资料 中文 英文 支持网站 网站 PC模式 移动模式 ScanQR模式 中文 Weibo ✓ ✓ ✓ 新浪微博 Douban ✓ ✗ ✗ 豆瓣 Github ✓ ✗ ✗ Github Music163 ✓ ✗ ✗ 网易云音乐 Zt12306 ✓ ✗ ✗ 中国铁路12306 QQZone ✗ ✗ ✓ QQ空间 QQQun ✗ ✗ ✓ QQ群 QQId ✗ ✗ ✓ 我的QQ中心 Zhihu ✗ ✗ ✓ 知乎 Bilibili ✓ ✓ ✗ B站 Toutiao ✗ ✗ ✗ 今日头条 Taobao ✗ ✗ ✓ 淘宝 Jingdong ✗ ✗ ✓ 京东 Ifeng ✓ ✗ ✗ 凤凰网 Sohu ✗ ✓ ✗ 搜狐 Zgconline ✓ ✗ ✗ 中关村在线 Lagou ✗ ✗ ✗ 拉勾网 Twitter ✗ ✓ ✗ 推特 Vultr ✓ ✗ ✗ Vultr eSurfing ✓ ✗ ✗ 天翼 Renren ✓ ✗ ✗ 人人网 W3Cschool ✓ ✗ ✗ W3Cschool(编程狮) Fishc ✓ ✗ ✗ 鱼C论坛 Youdao ✓ ✗ ✗ 有道 Baidupan ✓ ✗ ✗ 百度网盘 Stackoverflow ✓ ✗ ✗ Stackoverflow CodaLab ✓ ✗ ✗ CodaLab PyPi ✓ ✗ ✗ PyPi Xiami ✓ ✗ ✗ 虾米音乐 Douyu ✗ ✗ ✓ 斗鱼直播 Migu ✓ ✗ ✗ 咪咕音乐 Qunar ✓ ✗ ✗ 去哪儿旅行 Mieshop ✓ ✗ ✗ 小米商城 Mpweixin ✓ ✗ ✗ 微信公众号 Baidutieba ✗ ✗ ✓ 百度贴吧 Dazhongdianping ✗ ✗ ✓ 大众点评 Jianguoyun ✓ ✗ ✗ 坚果云 Cloud189 ✓ ✗ ✗ 天翼云盘 QQMusic ✗ ✗ ✓ QQ音乐 Ximalaya ✗ ✗ ✓ 喜马拉雅 使用DecryptLogin的一些情况 名称 介绍 代码 中文 weiboMonitor click click 微博监控 QQReport click click 生成QQ个人专属报告 bilibiliDownloadUserVideos click click 下载B站指定UP主的所有视频 NeteaseSongListDownloader click click 网易云个人歌单下载器 NeteaseListenLeaderboard click click 网易云个人听歌排行榜 userWeiboSpider click click 下载指定微博用户的所有微博数据 NeteaseSignin click click 网易云音乐自动签到 weiboEmoji click click 微博表情包爬取 weiboSender click click 大吼一声发微博 tbgoods click click 淘宝商品数据小爬虫 jdgoods click click 京东商品数据小爬虫 delallweibos click click 批量删除微博 ClearQzone click click 批量删除QQ空间说说 NeteaseEveryday click click 在终端看网易云每日歌曲推荐 NeteaseClickPlaylist click click 网易云音乐刷歌曲播放量 安装 pip安装 run "pip install DecryptLogin" 源代码安装 (1)离线 第一步:git clone https://github.com/CharlesPikachu/DecryptLogin.git 第二步:cd DecryptLogin->run “ python setup.py install” (2)在线 run “ pip install git + https://github.com/CharlesPikachu/DecryptLogin.git@master” 快速开始 from DecryptLogin import login lg = login.Login() infos_return, session = lg.douban(username[telephone], password) infos_return, session = lg.github(username[email], password) infos_return, session = lg.weibo() infos_return, session = lg.music163(username[telephone/email], password) infos_return, session
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值