吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 9878|回复: 99
收起左侧

[Python 原创] 某网站自动下载音乐mp3和歌词 离线音乐

  [复制链接]
英雄初本涩 发表于 2023-1-9 09:06
本帖最后由 英雄初本涩 于 2023-1-9 09:11 编辑

昨天想下载点离线音乐在车里听歌了,发现各大因为app都要会员,于是朋友发给我一个网站。可是进去发现需要一个一个下载,嫌麻烦,于是····开工
[Python] 纯文本查看 复制代码
from selenium import webdriver
import requests
from bs4 import BeautifulSoup
import os
options = webdriver.ChromeOptions()
options.add_argument('--headless')
# 给请求指定一个请求头来模拟chrome浏览器
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
    'cookie':'__51uvsct__JZKGLNhr7gNTmF1z=1; __51vcke__JZKGLNhr7gNTmF1z=dbcc8135-b908-58b9-ab0f-f09772cc8ef9; __51vuft__JZKGLNhr7gNTmF1z=1673170099915; __vtins__JZKGLNhr7gNTmF1z=%7B%22sid%22%3A%20%2250340dc9-526b-5b41-8642-2fa520c011a5%22%2C%20%22vd%22%3A%2030%2C%20%22stt%22%3A%204104371%2C%20%22dr%22%3A%20616811%2C%20%22expires%22%3A%201673176004282%2C%20%22ct%22%3A%201673174204282%7D'
}
server = 'https://www.gequbao.com'
# 凤凰传奇地址
singer = 'https://www.gequbao.com/s/%E8%B4%B9%E7%8E%89%E6%B8%85'


# 获取歌曲内容
def get_contents(song,song_title,singer_name):
    # print(song)
    save_url = 'G:/python/songs/{}'.format(singer_name)
    save_lrc_path = 'G:/python/songs/{}/{}.lrc'.format(singer_name,song_title)
    res = requests.get(url=song, headers=headers)
    res.encoding = 'utf-8'
    html = res.text
    soup = BeautifulSoup(html, 'html.parser')
    # 获取歌曲的下载链接
    driver = webdriver.Chrome(options=options)
    driver.get(song)

    song_elem = driver.find_element_by_id("btn-download-mp3")
    lrc_elem = driver.find_element_by_id("btn-download-lrc")
    download_url = song_elem.get_attribute('href')
    lrc_url = lrc_elem.get_attribute('href')
    # 读取MP3资源
    req = requests.get(download_url, stream=True)
    # 文件夹不存在,则创建文件夹
    folder = os.path.exists(save_url)
    if not folder:
        os.makedirs(save_url)

    # 文件存储地址
    full_title = song_title + '.mp3'
    file_path = os.path.join(save_url, full_title)
    print('开始写入歌曲:', file_path)
    # 打开本地文件夹路径file_path,以二进制流方式写入,保存到本地
    with open(file_path, 'wb') as fd:
        for chunk in req.iter_content():
            fd.write(chunk)
    print(song_title + '成功下载!')
    # 下载歌词
    print('开始写入歌词:', save_lrc_path)
    r = requests.get(lrc_url).content
    with open(save_lrc_path, 'wb') as fd:
        fd.write(r)
        fd.close()
    print(song_title + '歌词成功下载!')


# 主方法
def main():
    res = requests.get(singer, headers=headers)
    res.encoding = 'utf-8'
    html = res.text
    # 使用自带的html.parser解析
    soup = BeautifulSoup(html, 'html.parser')
    # 获取歌曲的列表
    songs = soup.find('div', class_='card-text').find_all(class_='text-primary')
    singer_name = soup.find('input', id='s-input-line')['value']
    print('查询到歌曲数: %d ' % len(songs))
    for each in songs:
        try:
            song = server + each.get('href')
            song_title = each.get_text().strip()
            get_contents(song,song_title,singer_name)
        except Exception as e:
            print(e)


if __name__ == '__main__':
    main()



运行之后需要输入要下载的歌手搜索结果页
下载速度有点慢,而且访问太频繁系统会返回443,但是满足我的需求了,所以也没继续优化,瞎玩呗

3

3

2

2

免费评分

参与人数 13吾爱币 +19 热心值 +12 收起 理由
212741 + 1 + 1 谢谢@Thanks!
Empress123 + 1 谢谢@Thanks!
midao + 1 + 1 鼓励转贴优秀软件安全工具和文档!
heelihua + 1 + 1 这个爬下来的内容能分享下么,老哥,https://www.52pojie.cn/forum.php?mod.
Miyano9697 + 1 + 1 谢谢@Thanks!
CGTappear + 1 + 1 热心回复!
yinianbingyan + 1 + 1 用心讨论,共获提升!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
1101902800 + 1 + 1 谢谢@Thanks!
YFxbxb888 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
yyb414 + 1 + 1 热心回复!
lcg2014 + 1 + 1 经典老歌好评,麻烦分享,谢谢
461735945 + 1 + 1 谢谢@Thanks!

查看全部评分

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

棋行天下黄 发表于 2023-2-6 16:34
歌手写固定了,修改下加几句
# 凤凰传奇地址
# singer = 'https://www.gequbao.com/s/%E8%B4%B9%E7%8E%89%E6%B8%85'
input_singer=input("请输入歌手名:")
import urllib.parse  # 将网址中的中文转化为编码后的字符
input_singer=urllib.parse.quote(input_singer)
singer = 'https://www.gequbao.com/s/{}'.format(input_singer)

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
TTXD0218 + 1 + 1 我很赞同!

查看全部评分

jingtiaopi 发表于 2023-1-9 09:31
lijun001 发表于 2023-1-9 09:17
sbwfnhn 发表于 2023-1-9 09:21
有没有好的音乐源,现在的音乐源音质实在差,连flac格式都没有。
surpasskarma 发表于 2023-1-9 09:27
感谢分享。
jokaka 发表于 2023-1-9 09:27
试用看看 谢谢楼主拉
lopk666 发表于 2023-1-9 09:30
太强了吧,感谢分享
ck6102 发表于 2023-1-9 09:32
very good , 3q
ciker_li 发表于 2023-1-9 09:32
感谢分享,学习学习
CDK9855 发表于 2023-1-9 09:40
感谢分享,适用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 16:31

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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