如何獲取歌曲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請求,可以驗證請求的來源和類型,防止爬蟲請求成功獲取到后臺數據。

import json
import timeimport requestsX咸Y魚H = tb0336576862
url = 'https://music.liuzhijin.cn/'xiandata = {'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 resultprint(fetch_info())

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/41582.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/41582.shtml
英文地址,請注明出處:http://en.pswp.cn/web/41582.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大華DSS user_toLoginPage.action命令執行漏洞

免責聲明 本文章僅做網絡安全技術研究使用!嚴禁用于非法犯罪行為,請嚴格遵守國家法律法規;請勿利用文章內的相關技術從事非法測試,如因此產生的一切不良后果與文章作者無關。使用本文所提供的信息或工具即視為同意本免責聲明&…

go語言day11 錯誤 defer(),panic(),recover()

錯誤: 創建錯誤 1)fmt包下提供的方法 fmt.Errorf(" 格式化字符串信息 " , 空接口類型對象 ) 2)errors包下提供的方法 errors.New(" 字符串信息 ") 創建自定義錯誤 需要實現error接口,而error接口…

JavaSe系列二十七: Java正則表達式

正則表達式 為什么要學習正則表達式再提幾個問題解決之道-正則表達式正則表達式基本介紹介紹 正則表達式底層實現實例分析 正則表達式語法基本介紹元字符-轉義號 \\\\元字符-字符匹配符元字符-選擇匹配符元字符-限定符元字符-定位符分組非貪婪匹配 應用實例對字符串進行如下驗證…

學習筆記——動態路由——OSPF聚合(匯總)

十一、OSPF聚合(匯總) 1、路由聚合(匯總) 路由匯總是一種重要的思想,在大型的項目中是必須考慮的一個重點事項。隨著網絡的規模越來越大,網絡中的設備所需維護的路由表項也就會越來越多,路由表的規模也就會逐漸變大,而路由表是需…

React中的useMemo和memo

引言 React是一個聲明式的JavaScript庫,用于構建用戶界面。在開發過程中,性能優化是一個重要的方面。useMemo和memo是React提供的工具,用于幫助開發者避免不必要的渲染和計算,從而提升應用性能。 問題背景 在React應用中&#…

實現antd designable平臺的組件拖拽功能

平臺:designable設計器 github:designable 目錄 1 背景2 技術棧3 組件拖拽和放置3.1 類型定義3.2 拖拽3.3 放置 1 背景 由于業務需求,我們需要實現designable平臺的一個簡易版的組件拖拽功能。 #mermaid-svg-QrxSDGe9YyGG3LbQ {font-family:…

【Unity2D 2022:UI】制作角色血條

一、創建血底UI 1. 創建畫布(Canvas) 2. 在畫布上添加血底圖像(Image)子物體 二、編輯血底UI 1. 將血底圖片拖入源圖像(Source Image)中 2. 點擊設置為圖片的原大小(Set Native Size&#x…

設計一個會員卡系統

會員卡系統在現代商業環境中是一個重要的客戶關系管理工具。通過會員卡系統,企業可以有效地增加客戶粘性,提高客戶滿意度,進而提升銷售額。本文將詳細討論如何設計一個全面的會員卡系統,包括會員卡的類型、權益設計、續費規則、升…

Java | Leetcode Java題解之第219題存在重復元素II

題目&#xff1a; 題解&#xff1a; class Solution {public boolean containsNearbyDuplicate(int[] nums, int k) {Set<Integer> set new HashSet<Integer>();int length nums.length;for (int i 0; i < length; i) {if (i > k) {set.remove(nums[i - …

# 三 JS的流程控制和函數

三 JS的流程控制和函數 3.1 JS分支結構 if結構 這里的if結構幾乎和JAVA中的一樣,需要注意的是 if()中的非空字符串會被認為是trueif()中的非零數字會被認為是true 代碼 if(false){// 非空字符串 if判斷為trueconsole.log(true) }else{console.log(false) } if(){// 長度為0…

GitHub詳解:代碼托管與協作開發平臺

文章目錄 一、GitHub簡介二、GitHub的核心功能2.1 倉庫&#xff08;Repository&#xff09;2.2 版本控制與分支&#xff08;Branch&#xff09;2.3 Pull Request2.4 Issues與Projects2.5 GitHub Actions 三、GitHub的使用方法3.1 注冊與登錄3.2 創建和管理倉庫3.3 使用Git進行代…

【密碼學】密碼學中的四種攻擊方式和兩種攻擊手段

在密碼學中&#xff0c;攻擊方式通常指的是密碼分析者試圖破解加密信息或繞過安全機制的各種策略。根據密碼分析者對明文、密文以及加密算法的知識程度&#xff0c;攻擊可以分為以下四種基本類型&#xff1a; 一、四種攻擊的定義 &#xff08;1&#xff09;唯密文攻擊(COA, C…

PCIe驅動開發(2)— 第一個簡單驅動編寫和測試

PCIe驅動開發&#xff08;2&#xff09;— 第一個簡單驅動編寫和測試 一、前言 教程參考&#xff1a;02_實戰部分_PCIE設備測試 教程參考&#xff1a;03_PCIe設備驅動源碼解析 二、驅動編寫 新建hello_pcie.c文件 touch hello_pcie.c然后編寫內容如下所示&#xff1a; #i…

【持續集成_03課_Jenkins生成Allure報告及Sonar靜態掃描】

1、 一、構建之后的配置 1、安裝allure插件 安裝好之后&#xff0c;可以在這里搜到已經安裝的 2、配置allure的allure-commandline 正常配置&#xff0c;是要么在工具里配置&#xff0c;要么在系統里配置 allure-commandline是在工具里進行配置 兩種方式進行配置 1&#xff…

原生JavaScript實現錄屏功能

1. 前言 使用JavaScript實現瀏覽器中打開系統錄屏功能 示例圖: 2. 源碼 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><…

LabVIEW機器視覺系統中的圖像畸變、校準和矯正

在機器視覺應用中&#xff0c;圖像畸變、校準和矯正是確保圖像準確性的關鍵步驟。LabVIEW作為一種強大的圖像處理和分析工具&#xff0c;提供了一系列功能來處理這些問題。以下是對圖像畸變、校準和矯正的詳細介紹。 圖像畸變 圖像畸變 是指由于攝像鏡頭的光學特性或拍攝角度問…

算法重新刷題

基礎算法 前綴和 一維前綴和 [USACO16JAN] Subsequences Summing to Sevens S - 洛谷 這一題主要是需要結合數學知識來求解&#xff0c; #include <iostream> #include <cstring> #include <cstdio> #include <algorithm>using namespace std;con…

06pymysql

【一】pymysql 1.我們可以利用pymysql在python中操作數據庫 原理是pyMySQL-->是封裝好的執行subprocess鏈接數據庫執行數據庫命令的模塊 官網&#xff1a;https://zetcode.com/python/pymysql/ 【二】使用示例 import pymysql from pymysql.cursors import DictCursor ?…

進入防火墻Web管理頁面(eNSP USG6000V)和管理員模塊

1、進入防火墻Web管理頁面 USG系列是華為提供的一款高端防火墻產品&#xff0c;其特點在于提供強大的安全防護能力和靈活的擴展性。 以eNSP中的USG6000為例&#xff1a; MGMT口&#xff08;web管理口&#xff09;&#xff1a;對應設備上的G0/0/0口&#xff0c;上面初始配有一…

如何在Spring Boot中實現實時通知

如何在Spring Boot中實現實時通知 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將討論如何在Spring Boot應用中實現實時通知功能&#xff0c;這在現代…