如何获取歌曲id---cloudmusic

X-Requested-With:"XMLHttpRequest":

https://blog.csdn.net/muzico425/article/details/102735413

https://www.runoob.com/xml/xml-http.html

https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest

通过该案例主要还是学习一下X-Requested-With:"XMLHttpRequest"的相关知识

(因为之前在这个网站上通过歌名来扒歌曲id的时候,请求头里没带X-Requested:"XMLHttpRequest"就一直给我返回错误的数据(很直白的返回一句话你这个请求有猫腻啊。。。)

首先介绍一下AJAX请求:

AJAX请求在开发中的主要作用:在不刷新整个页面的情况下更新部分页面内容。

然后介绍XMLHttpRequest (XHR)

通俗的说,AJAX请求就是通过XMLHttpRequest对象(XHR在所有现代浏览器都会内建)来发送的,由此实现异步数据交换,使得网页可以在不重新加载的情况下更新部分内容

这里再讲讲异步数据交换:

举个例子刷微博,当我在刷一个微博的帖子时,我要看这个帖子评论是不是要点开评论区?

对。当我点开评论区加载评论时就会触发一个AJAX请求来异步请求的微博后端评论数据,此时因为该请求是异步的,网页不会进行重载,所以我不用等到后端的数据返回就可以给执行给这条微博点赞/转发的操作,有着很舒适冲浪的体验。

这就是异步通信的好处让网站不需要等待每一个任务完成再执行下一个任务,而是可以同时进行多个任务。

那么X-Requested-With:"XMLHttpRequest"的作用是什么呢?

答:X-Requested-With用来标识HTTP请求的来源,那么在请求中带有X-Requested-With:"XMLHttpRequest"的标识就可以告诉网站后端当前接收请求是通过XHR对象发起的AJAX请求,可以验证请求的来源和类型,防止爬虫请求成功获取到后台数据。

python 复制代码
import json
import time

import requests


X咸Y鱼H = tb0336576862
url = 'https://music.liuzhijin.cn/'xian


data = {
    'input':'开门红',
    'filter':'name',
    'type':'netease' ,
    'page':1,
}
headers = {
"Host": "music.liuzhijin.cn",
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0",
"X-Requested-With":"XMLHttpRequest",
"Origin":"https://music.liuzhijin.cn",
"Referer":"https://music.liuzhijin.cn/?name=%E5%BC%80%E9%97%A8%E7%BA%A2&type=netease"
}


def fetch_info():
    result = []
    for i in range(1):  # 提取查看一共需要多少页
        res = requests.post(url, data=data, headers=headers)
        if res.status_code == 200:
            info = json.loads(res.text)
            print(f'success {i}')
            print(info)
            result.append(info)
        else:
            print(f'fail {i}')
        time.sleep(3)  # 休息,减少服务器压力
    return result

print(fetch_info())
相关推荐
土狗TuGou4 分钟前
SQL内功笔记 · 第5篇:SQL逻辑执行顺序
数据库·笔记·后端·sql·mysql
草莓熊Lotso12 分钟前
【LangChain】聊天模型实战:结构化输出完全指南(从原理到落地)
数据库·python·langchain·软件工程
lili001213 分钟前
AI编程三件套CI集成与质量门禁:从“看起来对“到“证据确凿“
java·人工智能·python·ci/cd·ai编程
原来是猿15 分钟前
性能测试(1)
运维·服务器·python·压力测试
小小工匠17 分钟前
计算机网络 - 彻底理解 CIDR、子网掩码与网段划分
计算机网络·子网掩码·cidr·网段划分
AIFQuant26 分钟前
外汇交易平台技术栈深度解析:行情 API、清算、风控、前端一体化方案
前端·python·websocket·金融·restful
花酒锄作田6 小时前
[python]argparse 包在聊天机器人中的应用
python
NiceCloud喜云9 小时前
Opus 4.8 的 Effort Control 怎么选:Low 到 Max 五档策略
android·java·大数据·前端·c++·python·spring
为思念酝酿的痛9 小时前
POSIX信号量
linux·运维·服务器·后端
小羊在睡觉9 小时前
力扣84. 柱状图中最大的矩形
后端·算法·leetcode·golang·go