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

简介:   首先在此申明,此抓取内容及发布的地址,只用于个人研究,如涉及到版权问题,还及时联系作者。   目的:     其实最开始是在研究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=\"(?
目录
相关文章
|
8月前
|
存储 网络安全 开发工具
百度搜索:蓝易云【不同主机配置不同的downSpeedVal教程】
在执行这些操作之前,请务必备份重要的配置文件,以防止意外的数据丢失。同时,要小心操作,确保您对目标主机有足够的了解,以避免配置错误导致的问题。
81 4
|
API 开发者
百度批量算路功能使用
百度批量算路功能使用
121 0
|
6月前
|
搜索推荐
网站怎么做才可以禁止搜索引擎抓取收录页面快照
有太多的搜索引擎,每天抓来抓去的,不胜其烦!我们小网站承受不了这么大的量啊!于是,禁止他们抓取收录快照就成了我们的救命稻草!那么如何禁止自己的页面被收录快照呢?其实方法很简单,跟我来做吧。
79 6
网站怎么做才可以禁止搜索引擎抓取收录页面快照
|
应用服务中间件 Apache PHP
百度搜索:蓝易云 ,什么是HTTP500内部服务器错误,要如何修复?
如果以上方法都没有解决问题,您可能需要进一步检查应用程序的代码、服务器环境和配置,并可能需要寻求专业人士的帮助。修复HTTP 500错误的过程可能因具体情况而异,因此建议根据具体情况进行调查和解决。
108 0
|
8月前
|
存储 负载均衡 安全
百度搜索:蓝易云【聊聊ConcurrentHashMap的存储流程】
通过以上分段锁和哈希表的设计,ConcurrentHashMap实现了高效的并发操作,使得多线程环境下的插入和获取元素操作不会造成线程间的竞争,从而提高了性能和并发能力。
60 1
|
8月前
|
Kubernetes 监控 调度
百度搜索:蓝易云【K8S中的Node管理是怎么回事?】
总体来说,Node管理是Kubernetes集群中的重要部分,确保集群中的节点状态可靠、资源高效利用和容器应用平稳运行。通过Master节点对Node进行管理,Kubernetes实现了高度自动化的容器编排和调度,为云原生应用提供了强大的管理能力。
67 1
|
8月前
|
前端开发 JavaScript 应用服务中间件
百度搜索:蓝易云【服务器如何配置支持history模式】
配置完毕后,服务器将会将所有请求重定向到你的应用的index.html文件,使得history模式能够正常运行。这样,当用户在浏览器中直接访问子路径时,服务器会正确地返回index.html,并由前端路由接管处理。
100 1
|
存储 SQL 缓存
百度搜索:蓝易云【uniapp本地存储详解】
综上所述,UniApp提供了本地缓存和本地数据库两种本地存储方式,可以根据需求选择适合的方式来存储和操作数据。
402 8
|
搜索推荐 算法 小程序
微信搜索流量怎么做
微信搜索流量怎么做
77 0
微信搜索流量怎么做
|
Kubernetes Linux Docker
百度搜索:蓝易云【教你如何搭建K8S集群。】
以上只是搭建Kubernetes集群的基本步骤。根据你的需求和特定的环境,可能还需要进行其他配置和调整。你可以参考Kubernetes官方文档和相关教程,以获取更详细的指南和更多高级配置选项。
227 2