首页 > 编程语言 >再也不怕深夜emo的时候没会员了,无敌Python只需20行代码,轻松爬取网易云排行榜热门音乐!

再也不怕深夜emo的时候没会员了,无敌Python只需20行代码,轻松爬取网易云排行榜热门音乐!

时间:2024-09-05 18:04:30浏览次数:8  
标签:20 headers Python title js 爬取 url music data

再也不怕深夜emo的时候没会员了,无敌Python只需20行代码,轻松爬取网易云排行榜热门音乐! 让我们直接开始本次操作吧!

import random
import time
import execjs
import requests
import re
"""发送请求: 模拟浏览器对于url地址发送请求"""
# 模拟浏览器
headers = {
    'User-Agent':'*******” (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'
}
# 请求网址: 热歌榜链接
link = 'https://********/discover/toplist?id=3778678'
# 获取数据
html = requests.get(url=link, headers=headers).text
# 使用正则提取歌曲ID 歌名
info = re.findall('<a href="/song\?id=(\d+)">(.*?)</a>', html)
# for循环遍历
for music_id, title in info:
    # time.sleep(random.randint(1,2))
    # 替换特殊字符
    new_title = re.sub(r'[\\/:*?"<>|]', '', title)
    print(music_id, title)
    # 请求网址
    url = 'https://com/weapi/song/enhance/player/url/v1?csrf_token='
    # 读取js代码
    js_file = open('网易.js', encoding='utf-8').read()
    # 编译js代码
    js_code = execjs.compile(js_file)
    # 参数
    a = {
        "ids": f"[{music_id}]",
        "level": "standard",
        "encodeType": "aac",
        "csrf_token": ""
    }
   
# 完整源码加v Python1018 备注{ 圆圆 } 获取 不备注不通过验证哦
 
 # 调用js代码函数
    resp = js_code.call('get_data', a)
    print(resp)
    # 请求参数 (需要通过调用js代码获取)
    data = {
        'params':resp['encText'],
        'encSecKey':resp['encSecKey'],
    }
    # 发送请求
    response = requests.post(url=url, data=data, headers=headers)
    """获取响应json数据"""
    json_data = response.json()
    """解析数据: 提取歌曲链接"""
    music_url = json_data['data'][0]['url']
    """保存数据: 获取歌曲内容, 进行数据保存"""
    # 获取歌曲内容
    music_content = requests.get(url=music_url, headers=headers).content
    # 保存数据
    with open('music\\' + title + '.mp3', mode='wb') as f:
        # 写入数据
        f.write(music_content)
    print(music_url)

大家快去试一下吧!!

标签:20,headers,Python,title,js,爬取,url,music,data
From: https://www.cnblogs.com/yuanyuan1010/p/18398971

相关文章

  • Origin2024中如何添加误差带?直观查看数据的变化范围
    误差线是通常用于统计或科学绘图中,本期给大家分享Origin中绘制带填充区的误差带图,可以直观显示数据的变化范围,填充区域也可以增加视觉效果和美观性操作步骤:1、打开Origin2024软件,然后在Book1中输入如下示例数据:2、选中所有数据:3、点击菜单栏中【绘图】→【基础2D图】→【......
  • 20240905_154516 python 填空题 字符串方法2
    有字符串列表li=["a","b","c"],让列表成员用+拼接,保存给变量rr="+".join(li)有字符串s,把它的内容变成小写,保存给变量rr=s.lower()有字符串s,把它内部的java全替换为python,保存结果给变量rr=s.replace("java","python")有字符串s="abc",请把它按空符号进行分割,得......
  • SVI pyro 随机变分推理的提示和技巧 ,贝叶斯神经网络 bnn pytorch python
    SVI第四部分:提示和技巧¶pyro.ai/examples/svi_part_iv.html导致这一个的三个SVI教程(第一部分, 第二部分,& 第三部分)通过使用Pyro做变分推断所涉及的各个步骤。在这个过程中,我们定义了模型和指南(即,变分分布),设置了变分目标(特别是埃尔博斯),以及构造的优化器(pyro.opti......
  • (免费源码)计算机毕业设计必看必学 原创定制程序 java、PHP、python、小程序、文案全套
    摘 要信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对高校知识共享系统等问题,对高校知识共享系统进行研究分析,然后开发设计出高校知识共享系统以......
  • python+flask实现用户登录界面
    简介        用户输入用户名和密码,此时系统进行核对,如果输入错误,则进行提示;否则登录系统功能界面。前端界面设计,登录界面的示例如下:1)实现前端设计,命名为login.html,前端代码如下所示:<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><titl......
  • 2024.08.10美团
    1.小美的密码小美准备登录美团,需要输入密码,小美忘记了密码,只记得密码可能是n个字符串中的一个。小美会按照密码的长度从小到大依次尝试每个字符串,对于相同长度的字符串,小美随机尝试,并且相同的密码只会尝试一次。小美想知道,她最少需要尝试多少次才能登录成功,最多需要尝试多少......
  • WebGL_0020:threejs 加载glb模型,加载图片贴图,加载canvas贴图,创建精灵模型并贴图
    1,import*asTHREEfrom'three';importtype{MapViewer}from'@/utils/map3d/mapViewer';import{STATIC_URL}from'@/config';import{GLTFLoader}from'three/examples/jsm/loaders/GLTFLoader';constgetSpri......
  • 基于 Python 的地址解析:自动识别姓名、电话、地址、详细地址与省市区
    随着电子商务和物流行业的蓬勃发展,自动化处理客户提供的收货信息变得尤为重要。在用户下单时,通常需要输入姓名、电话、地址等信息,但由于输入格式不统一,手动处理这些数据十分繁琐且容易出错。因此,利用Python自动解析用户输入的地址信息,提取姓名、电话、详细地址和省市区成为了许多......
  • 20240907_004551 mysql 视图 创建视图
    很幸苦的获取数据SELECTstudent.id,student.nameASsname,class.nameAScname,class.detailFROMstudentINNERJOINclassONstudent.cid=class.id存在的问题下次要再拿这样的数据重写语句很麻烦希望上面的查询结果直接就作为虚拟表的本体创建视图语法createvi......
  • 2024年3月scratch图形化编程等级考试四级真题
    2024年3月scratch图形化编程等级考试四级真题202403青少年软件编程等级考试Scratch四级真题试卷总分数:100分考试时长:60分钟第1题 运行下列程序,输入单词“PLAY”,最后角色说?()A:HLLLHLLLB:LLLLLLLLC:LLHHLLHHD:LLLHLLLH第2题 运行程序后,分别输入3、2、1,小猫会说什......