百度流行音乐-资源数据整合

简介:   首先在此申明,此抓取内容及发布的地址,只用于个人研究,如涉及到版权问题,还及时联系作者。   目的:     其实最开始是在研究vs2013环境下使用xmargin做的app,研究到webView控件的时候需要一个简单的页面来嵌套,但是个人觉得光是点测试数据没什么意思,就决定网上找下音乐方面的资源地址,可是搜索出来的好多音乐接口地址都不能使用了,所以觉得抓一下百度的音乐资源看是否能成功。

  首先在此申明,此抓取内容及发布的地址,只用于个人研究,如涉及到版权问题,还及时联系作者。

  目的:

    其实最开始是在研究vs2013环境下使用xmargin做的app,研究到webView控件的时候需要一个简单的页面来嵌套,但是个人觉得光是点测试数据没什么意思,就决定网上找下音乐方面的资源地址,可是搜索出来的好多音乐接口地址都不能使用了,所以觉得抓一下百度的音乐资源看是否能成功。

  首先:

  打开网页地址:http://music.baidu.com/tag/流行,立马使用gg浏览器F12,查看是否有音乐资源的地址,看到的是

  

  第一感觉后面的数字就是资源的唯一标识符Id,然后继续点击音乐名字,F12进入到

  

  看起来可以用的信息有:songPic(歌曲图片)和刚才第一个页面获取的信息id及songTitle(歌曲名字)(其他什么发布时间忽略),但是还是没有咋们想要的音频文件的地址和歌词,那么再继续进入播放页面

  

  f12看到的效果是

  

  看不到想要的音频地址,歌词地址,哪怕之前对应的id都没有了,仔细一看checkreelList_833790(0,event,this); 这个方法对应的是0,然后看每一首歌曲都有一个编号,升序往下排列这,这种情况第一反应音乐的信息应该是一个单独的文件或者ajax获取的json数据;于是乎通过network开始查找json文件或者js文件看有没有这种明显的音乐数据库信息;查找结果如下:

  

  格式化之后的数据songinfo文件:

  

  对应的还是Id,歌曲名称,图片地址,没有想要的信息;那么继续往下面找信息songlink文件中

  

  已经看到了mp3的资源信息,复制到浏览器打开,没错可以下载,然后打开能正常播放出歌曲声音,并且以.lrc结尾的地址就是歌词了,可以看一下;走到这里感觉好像挺简单的获取到了想要的信息,但是有没有注意到最开始的时候是点击了一首歌曲,现在出现的好像是一个列表的信息,仔细观察第一首歌曲的确是刚才选择的,下面的一些歌曲是默认按照第一个页面流行先后顺序来的,那么回到第一个页面点击两首歌曲,然后点击播放选中歌曲,直接又跳转到了刚才的播放页面,但是细心的朋友会发现浏览器地址栏里面是这样的如:

  

  然后和最开始选中一首歌曲的地址栏对比:

  

  是不是多了几个数字,发现多的这几个数字正好就是前面说的音乐的唯一编号Id,再看刚才说的songinfo和songlink文件都有刚才选择的歌曲的信息,然后做一下数据的整合就有了下面的代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 using System.Text.RegularExpressions;
  6 using System.Web;
  7 using System.Web.UI;
  8 using System.Web.UI.WebControls;
  9 using TaskPlugin;
 10 
 11 public partial class SourceTool : System.Web.UI.Page
 12 {
 13     protected void Page_Load(object sender, EventArgs e)
 14     {
 15 
 16     }
 17 
 18     protected void btnFidder_Click(object sender, EventArgs e)
 19     {
 20 
 21         var sbLog = new StringBuilder(string.Empty);
 22         try
 23         {
 24             var musices = new List();
 25 
 26             //1.获取-流行音乐歌单
 27             var p_url = "http://music.baidu.com/tag/流行";
 28             var p_music = PublicClass._HttpGet(p_url);
 29             if (string.IsNullOrEmpty(p_music)) { sbLog.Append("获取音乐列表失败\n"); return; }
 30 
 31             var pm = Regex.Matches(p_music, "title=\"(?
目录
相关文章
|
存储 消息中间件 RocketMQ
DLedger —基于 raft 协议的 commitlog 存储库
尊敬的阿里云用户: 您好!为方便您试用开源 RocketMQ 客户端访问阿里云MQ,我们申请了专门的优惠券,优惠券可以直接抵扣金额。请填写下您公司账号信息,点击上图,了解更多哦。 一、DLedger引入目的 在 RocketMQ 4.5 版本之前,RocketMQ 只有 Master/Slave 一种部署方式,一组 broker 中有一个 Master ,有零到多个 Slave,Slave 通过同步复制或异步复制的方式去同步 Master 数据。
13514 112
|
关系型数据库 Shell Linux
ACL(访问控制列表)权限管理
一、ACL权限 二、rwx权限 三、mask权限 四、ACL备份和恢复
|
12月前
|
Linux 数据库 虚拟化
Docker的常见应用部署技巧
以上就是一些Docker的常见应用部署技巧。使用Docker,你可以更容易地部署和管理你的应用,而不需要关心底层的硬件和操作系统。只要你掌握了这些技巧,你就可以更有效地使用Docker来部署你的应用。
212 25
|
安全 Linux
探索Linux操作系统的启动过程
在这篇文章中,我们将深入探讨Linux系统的启动流程,从电源开启到登录界面呈现的每一个步骤。我们将揭示BIOS、引导加载器、内核以及初始化进程如何协同工作,使Linux系统顺利启动。通过了解这些过程,读者将能更好地理解Linux系统的工作原理,并为可能出现的启动问题提供解决思路。
318 14
|
消息中间件 安全 物联网
RabbitMQ的人生简介
8月更文挑战第26天
|
数据采集 安全 网络安全
提高企业进入国外市场的“免疫力”——阿里云CDN安全能力分析
提高企业进入国外市场的“免疫力”——阿里云CDN安全能力分析
|
搜索推荐 网络架构 开发者
Next.js静态出口生成策略深度解析
【7月更文挑战第18天】Next.js凭借其强大的静态生成、静态出口生成以及服务器端渲染功能,为开发者提供了构建高性能、高SEO友好Web应用的强大工具。
|
SQL XML Java
Android 这 13 道 ContentProvider 面试题,你都会了吗?
Android 这 13 道 ContentProvider 面试题,你都会了吗?
|
Kubernetes 云计算 虚拟化
云计算开发与部署:技术与实践的深度融合
云计算开发与部署:技术与实践的深度融合
470 2
|
JSON 前端开发 Java
Spring Web MVC入门(2)——请求(上)
Spring Web MVC入门(2)——请求
204 0