擷取qq音樂json資料---某課網音樂app學習

來源:互聯網
上載者:User

標籤:音樂   function   文法   exp   span   參數   ret   限制   cal   

移動端qq音樂地址:https://m.y.qq.com/ .抓取QQ音樂資料 

請求首頁時,有如下連結,回調了jsonp

https://c.y.qq.com/splcloud/fcgi-bin/p.fcg?g_tk=1847183166&format=jsonp&jsonpCallback=jsonp1

真正xhr:

https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg?g_tk=1847183166&uin=1163898403&format=json&inCharset=utf-8&outCharset=utf-8&notice=0&platform=h5&needNewCode=1&_=1536239792110

瀏覽器可以開啟的json資料

 

在記憶一下jsonp

jsonp是目前可以跨域的(基本上標籤帶有src屬性的都是可以不受任何訪問限制),且要動態產生script標籤在ajax無法跨域的情況下可以使用jsonp進行請求

但它跟ajax是不一樣的..jsonp利用url連結進行請求發送和調用回呼函數(callblack)使用資料。


使用了 github:https://github.com/webmodules/jsonp 的外掛程式,自訂一個封裝的jsonp

import originJsonp from ‘jsonp‘export default function jsonp(url, data, option) {  url += (url.indexOf(‘?‘) < 0 ? ‘?‘ : ‘&‘) + param(data)  return new Promise((resolve, reject) => {    originJsonp(url, option, (err, data) => {      if (!err) {        resolve(data)      } else {        reject(err)      }    })  })}//url代表一個純淨的url地址//data是其他參數,用於拼接到url上  export function param(data) {  let url = ‘‘  for (var k in data) {    let value = data[k] !== undefined ? data[k] : ‘‘    url += `&${k}=${encodeURIComponent(value)}`     //es6文法  }  return url ? url.substring(1) : ‘‘}

對每個組件封裝請求

import jsonp from ‘common/js/jsonp‘import {commonParams, options} from ‘./config‘export function getRecommend() {  const url = ‘https://c.y.qq.com/musichall/fcgi-bin/fcg_yqqhomepagerecommend.fcg‘  const data = Object.assign({}, commonParams, {    platform: ‘h5‘,    uin: 0,    needNewCode: 1  })  return jsonp(url, data, options)}

這個url是真正xhr的地址

擷取qq音樂json資料---某課網音樂app學習

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.