/*

* Title:网易云热评

* auth:尹深

* QQ:1247333542

*/

class Hot_review

{

public function Get_comments($songid)

{

// 设置请求头

$headers = array(

'Accept:*/*',

'Accept-Language:zh-CN,zh;q=0.9',

'Connection:keep-alive',

'Content-Type:application/x-www-form-urlencoded',

'Host:music.163.com',

'Origin:https://music.163.com',

// 模拟浏览器设置 User-Agent ,否则取到的数据不完整

'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'

);

// 拼接歌曲的url

$url = 'https://music.163.com/weapi/v1/resource/comments/R_SO_4_' . $songid . '?csrf_token=';

// 拼接加密 params 用到的第一个参数

$first_param = '{"rid":"R_SO_4_' . $songid . '","offset":"0","total":"true","limit":"20","csrf_token":""}';

$data = array('params' => $this->aesGetParams($first_param), 'encSecKey' => $this->getEncSecKey());

$htmlInfo = $this->httpPost($url, $headers, http_build_query($data));

$htmlInfo= $this->str_change($htmlInfo);

$arr = ["comments" => $htmlInfo["comments"], "hotComments" => $htmlInfo["hotComments"]];

echo json_encode($arr, 448);

}

/**

* 将字符串转换为对象再转换为数组(升级版,通用)

*

* @param string $data 字符串

* @return array 返回数组格式,如果,data为空,则返回空数组

*/

private function str_change($data) {

//去除一个字符串两端空格,

$data=trim($data);

//解码

$data=json_decode($data,true);

return $data;

}

/**

* 加密获取params

* @param $param // 待加密的明文信息数据

* @param string $method // 加密算法

* @param string $key // key

* @param string $options // options 是以下标记的按位或: OPENSSL_RAW_DATA 、 OPENSSL_ZERO_PADDING

* @param string $iv // 非 NULL 的初始化向量

* @return string

*

* $key 在加密 params 中第一次用的是固定的第四个参数 0CoJUm6Qyw8W8jud,在第二次加密中用的是 js 中随机生成的16位字符串

*/

private function aesGetParams($param, $method = 'AES-128-CBC', $key = 'JK1M5sQAEcAZ46af', $options = '0', $iv = '0102030405060708')

{

$firstEncrypt = openssl_encrypt($param, $method, '0CoJUm6Qyw8W8jud', $options, $iv);

$secondEncrypt = openssl_encrypt($firstEncrypt, $method, $key, $options, $iv);

return $secondEncrypt;

}

/**

* encSecKey 在 js 中有 res 方法加密。

* 其中三个参数分别为上面随机生成的16为字符串,第二个参数 $second_param,第三个参数 $third_param 都是固定写死的,这边使用抄下来的一个固定 encSecKey

* @return bool

*/

private function getEncSecKey()

{

$getEncSecKey = '2a98b8ea60e8e0dd0369632b14574cf8d4b7a606349669b2609509978e1b5f96ed8fbe53a90c0bb74497cd2eb965508bff5bfa065394a52ea362539444f18f423f46aded5ed9a1788d110875fb976386aa4f5d784321433549434bccea5f08d1888995bdd2eb015b2236f5af15099e3afbb05aa817c92bfe3214671e818ea16b';

return $getEncSecKey;

}

/**

* curl 发送 post 请求

* @param $url

* @param $header

* @param $data

* @return mixed

*/

private function httpPost($url, $header, $data)

{

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_HEADER, 0); // 0不带头文件,1带头文件(返回值中带有头文件)

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检查

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转

curl_setopt($ch, CURLOPT_AUTOREFERER, 1); // 自动设置Referer

curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 3); //设置等待时间

curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置cURL允许执行的最长秒数

$content = curl_exec($ch);

curl_close($ch);

return $content;

}

}

$_GET["songid"]="1450163801";

if ($_GET["songid"]==null){

echo "音乐id不可为空";

}else{

$a=new Hot_review();

$a->Get_comments($_GET["songid"]);

}

网易云音乐encseckey算法php,网易云音乐热评api相关推荐

  1. PHP网易云音乐热评API接口代码

    PHP网易云音乐热评API接口代码 输出数据格式:josn 直接采集网易音乐调用,非第三方接口! 刷新php文件即可展示随机不同的网易最新热门音乐播放连接.热评.名称标题.简介.封面图等等! 使用方法 ...

  2. php音乐接口源码,网易云音乐热评api php源码

    [PHP] 纯文本查看 复制代码<?php /* * Title:网易云热评 * auth:九霄道长 */ class Hot_review { public function Get_comm ...

  3. 网易云音乐热评API抓取源码

    源码介绍: 网易云音乐热门评论随机API接口纯源码,随机热评. 标准链接格式为:xxx.com/xxx.php?format=text Json数据输出格式:xxx.xxx/xxx.php?forma ...

  4. 实验室-关于老铁整一个社会语录api与网抑云热评api(并引入百度语音tts)

    前言: 前段时间较火的两件物件,老铁的社会语录和网抑云,又恰好在一个博主的博客了看到了这个api,于是就拿过来酝酿出了这个页面. 效果展示 效果页面: hotreview 社会语录api 引入api ...

  5. 计算机音乐 带你去旅行,网易云音乐《带你去旅行》热评

    给你一首歌的时间 @明知是失败:帮你算了一下.你这次旅游估计要花20多万 @你迪er:昨天逗逗直播 粉丝在校长直播间带对型 说逗逗让他刷个大煎饼 校长明显眼泛泪 说她现在挺好 我也挺好 每天在家叫外卖 ...

  6. python网易云听歌时长_用Python爬取10w条网易云音乐热评并进行分析的方法总结

    有个段子讲"十年文案老司机,不如网易评论区,网易文豪遍地走,评论全部单身狗",网易云音乐的评论区也一直都是各类文案大神的聚集地. 那么我们普通用户到底如何成为网易云音乐评论里的热评 ...

  7. python作业记录--爬虫,网易云音乐热评+词云生成

    import requests import json import re import random from Crypto.Cipher import AES from base64 import ...

  8. 网易云音乐热评详细源码-Python

    爬虫 & 数据分析 运行环境:python3.6 为方便理解,网易云音乐热评的爬取代码分为两部分 1. 先爬取每个歌单里的歌曲的url,导出到music1_01.csv文件中 2. 爬取每首歌 ...

  9. (数据分析)网易云热评技巧

    (数据分析)网易云热评技巧 本文通过Python爬虫获取了网易云9万条热评,通过数据可视化分析其中的规律,同时分析热评最多的用户特征,从中总结出上热评的技巧. 1.数据抓取 数据集的获取是我们进行数据 ...

  10. 浅谈Python爬虫(五)【网易云热评爬取实例】

    浅谈Python爬虫(五) 目的:爬取网易云歌单所有歌曲的信息及热评 Python环境:3.7 编译器:PyCharm2019.1.3专业版 存储格式:JSON 1.分析网页 进入网易云音乐首页,点击 ...

最新文章

  1. VC中使用Matlab Engine出现无法找到libeng.dll的问题
  2. 服务机器人---充电桩
  3. 牛客16438 回文日期
  4. 一个常见的下拉框(css)
  5. java 数组扩容_Java数组扩容算法及Java对它的应用
  6. 博弈论 -- 巴什博弈
  7. PMP学习系列1:PMP考试介绍
  8. 最优化学习 数值优化的例子:实现最小二乘法
  9. 电脑如何设置u盘启动,u盘启动项设置方法
  10. ABAQUS的第一个error【删去Job-1.lck】
  11. mysql redo查看_mysql redo
  12. CSDN日报20170612 ——《程序员,感觉技术停滞了怎么办?》
  13. Aho-Corasick 算法
  14. 钠离子电池翻红:“锂焦虑”之下的望梅止渴
  15. 计算机走进画图世界课件,第一单元走进画图世界.doc
  16. mysql 在不同数据库中创建定时同步任务,将每分钟数据转每5分钟统计
  17. 【算法系列】数据预处理全面介绍
  18. 触摸屏键盘插件Virtual Keyboard 该怎么用 Virtual Keyboard 入门指南
  19. 计算机考试从哪里如何出题,计算机基础考试系统出题-第4章 excel.xls
  20. html5小游戏跑,HTML5 Speedster 小游戏(高速跑跳过关)

热门文章

  1. 计算机大学离散数学难吗,大学离散数学怎么学
  2. 【离散数学】数理逻辑 第二章 谓词逻辑(4) 谓词逻辑的推理理论
  3. windows10和安装linux双系统安装教程(超简单)
  4. Windows10下安装linux(Utunbu)双系统
  5. SCSA网络安全------数据传输安全-------广域网加速解决方案
  6. Python多线程实例
  7. EPIC下载商城UE4内容后
  8. [翻译]深入解析Windows操作系统(下)之第十章 内存管理
  9. 工信部强化车联网安全监管、上云可有效阻止勒索攻击|全球网络安全热点
  10. delphi2010安装