吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8911|回复: 42
收起左侧

[Python 转载] 【Python】python爬虫爬取网易云音乐(带搜索功能)

  [复制链接]
xccxvb 发表于 2020-3-14 19:45
本帖最后由 xccxvb 于 2020-3-14 19:55 编辑

时隔一年没有碰过python了,最近做视频想写个软件链接一下百度sdk把语音转文字,便于做字幕,于是一时兴起,拿起了我的python
但发现代码都忘了,觉定写个爬虫练练手先,于是有了以下
不是直接爬取的网易云,是找到一个其他网站,链接的网易云,所有歌曲都可以下载,本代码仅供交流哦(仔细看我代码注释,url后面那串数字随便改,自己使用时最好改一下)。
import requests
def FileStore(content, filepath):
    with open(filepath, 'wb') as f:
        f.write(content)
#获取音乐文件链接
def GetLink(url, data, headers):
    try:
        rsp = requests.post(url, data=data, headers=headers)
        link = rsp.text[rsp.text.index('http'):rsp.text.index('mp3')]+'mp3'
        link = link.replace('\\', '')
        return link
    except:
        print('音乐文件丢失')
#获取网站内容
def MusicSpider(url, data, headers):
    a = 1
    rsp = requests.post(url, data=data, headers=headers)
    content = rsp.text
    tp = content[content.index('('):content.index('])')]+'])'
    str1 = tp[1:-1]
    l = eval(str1)
    llist = []
    for i in l:
        d = i
        id = d.get('id')
        name = d.get('name')
        artist = d.get('artist')
        album = d.get('album')
        tt = {'id':str(id),'name':name}
        llist.append(tt)
        temp = str(a)+'-\t'+'id:'+str(id)+'\t'+'名称:'+name+'\t'+'作者:'+str(artist)+'\t'+'专辑:'+album+'\n'
        print(temp)
        a = a+1
    return llist
def DownloadMusic(url, headers, filename):
    msc = requests.get(url, headers=headers)
    with open(filename+'.mp3', 'wb') as f:
        f.write(msc.content)
#主程序
def Main():
    #下面链接里的一串数字随便改都行,只要保持格式位数不变就行,自己用代码时一定要改一下,不然可能失效
    url = "https://music.zhuolin.wang/api.php?callback=jQuery1113049032309587120504_1584182317773"
    name = input('请输入关键词:\n')
    data = {
        'types':'search',
        'count':'20',
        'source':'netease',
        'pages':'1',
        'name':name
        }

    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'
        }
    llist = MusicSpider(url, data, headers)
    index_1 = input('请输入你要下载音乐的序号\n')
    ddict = llist[int(index_1)-1]#和第31行对应
    print('正在获取链接……')
    data2 = {
            'types':'url',
            'id':ddict.get('id'),
            'source':'netease'
            }
    link = GetLink(url, data2, headers)#得到音乐直链
    print('音乐直链为:')
    print(link)
    print('下载中……')
    DownloadMusic(link, headers, ddict.get('name'))
    print('下载成功!')
while True:
    try:
        Main()
    except:
        continue

第一步

第一步

第二步

第二步

第三步

第三步

完成!

完成!

免费评分

参与人数 7吾爱币 +6 热心值 +6 收起 理由
蜗牛不会飞 + 1 我很赞同!
小空520 + 1 + 1 谢谢@Thanks!
fengoto + 1 我很赞同!
wolfwang2008 + 1 + 1 我很赞同!
l474691851 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
a1239761234 + 1 + 1 用心讨论,共获提升!
yjn866y + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| xccxvb 发表于 2020-3-15 10:01
edwin333333 发表于 2020-3-15 09:42
若若的问一下,使用这个代码的时候是不是要先安装爬虫的软件?

只需要安装一个requests包就行了。具体操作是打开cmd,输入pip install requests即可。
fengoto 发表于 2020-3-30 07:54
[Python] 纯文本查看 复制代码
    #下面链接里的一串数字随便改都行,只要保持格式位数不变就行,自己用代码时一定要改一下,不然可能失效
    url = "https://music.zhuolin.wang/api.php?callback=jQuery1113049032309587120504_1584182317773"


这里可以使用python的随机函数生成一段数字,不要每次要修改那么麻烦
lihaisanhui 发表于 2020-3-14 19:48
刚好在搞python爬虫,前来学习
我那个meitulu爬虫能麻烦楼主帮忙看看精简一下吗,感觉还是太臃肿
lihaisanhui 发表于 2020-3-14 19:49
其实歌曲列表的输出可以用表格形式
模块:prettytable
dshilei 发表于 2020-3-14 19:55
正在学python爬虫,用的requets,学习了
白衣国度 发表于 2020-3-14 19:57
第一次看见带搜索功能的爬虫,很强,感谢老铁
 楼主| xccxvb 发表于 2020-3-14 19:57
lihaisanhui 发表于 2020-3-14 19:48
刚好在搞python爬虫,前来学习
我那个meitulu爬虫能麻烦楼主帮忙看看精简一下吗,感觉还是太臃 ...

大佬啊,要不是我去看了你的贴子,我还真信了!
 楼主| xccxvb 发表于 2020-3-14 19:58
lihaisanhui 发表于 2020-3-14 19:49
其实歌曲列表的输出可以用表格形式
模块:prettytable

哈哈,我一年多没用python了,很多都忘了,这个我都时对照着requests文档写的。
lihaisanhui 发表于 2020-3-14 20:02
xccxvb 发表于 2020-3-14 19:58
哈哈,我一年多没用python了,很多都忘了,这个我都时对照着requests文档写的。

确实,爬虫这玩意也是熟能生巧。我上礼拜没碰爬虫,马上xpath就有点忘了
我美图录爬虫的第一版也是对着文档,摸爬滚打出来的
NvidiaChina 发表于 2020-3-14 20:14
支持原创作品
yjn866y 发表于 2020-3-14 20:24
学习中,谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 11:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表