二、酷狗 歌词下载

上篇中得到的JSON穿通过解析可以得到以下数据

TSearchKg=record

singername:string;//歌手名

filename:string;//歌词名

hash:string;//哈希验证

timelength:string;//时长

end;

酷狗歌词下载Url:http://mobilecdn.kugou.com/new/app/i/krc.php?‘ + ‘keyword=‘ +
    song + ‘&timelength=‘ + timelength + ‘&type=1‘ + ‘&cmd=200‘ +‘&time=‘+time+
    ‘&hash=‘ + hash;

song为utf8编码,有字符的处理转码需要特别处理,也许有更巧妙的UrlCode方式,但是我这里只解析song字段,所以这样处理,可能比较麻烦

 1 function StrToHex5(str: string; AEncoding: TEncoding): string;
 2 var
 3   ss: TStringStream;
 4   i: Integer;
 5   reg:TPerlRegex;
 6 begin
 7   Result := ‘‘;
 8   reg:=TPerlregex.Create;
 9   ss := TStringStream.Create(str, AEncoding);
10   try
11     for i := 0 to ss.Size - 1 do
12     begin
13       reg.Subject:=char(ss.Bytes[i]);
14       reg.RegEx:= ‘[a-zA-Z0-9]|\-|\.‘;
15       if reg.Match then
16       begin
17         result:=result+char(ss.Bytes[i]);
18         continue;
19       end;
20
21       if Trim(Char(ss.Bytes[i])) = ‘ ‘ then
22       begin
23         result:=Result + ‘%20‘;
24         Continue;
25       end;
26
27       Result := Result + ‘%‘ + Format(‘%.2x‘, [ss.Bytes[i]]);
28     end;
29   finally
30     ss.Free;
31     reg.Free;
32   end;
33 end;

timelength,hash以通过搜索获取

time字段为时间戳,System.DateUtils单元中有function DateTimeToUnix(const AValue: TDateTime; AInputIsUTC: Boolean): Int64;

可以转换获取AInputIsUTC默认True设置False

字段值全部获取成功,提交链接,我通过Idhttp下载下来的文件在头尾都会多出一些内容,尚未查明原因,

所以直接用系统自带的下载Api下载

添加Winapi.UrlMon单元,使用URLDownloadToFile(nil,pchar(下载链接),pchar(保存路径),0,nil);即可

时间: 2024-07-31 14:34:53

二、酷狗 歌词下载的相关文章

一、酷狗 歌词搜索 Indy TIdhttp

酷狗歌词Url: http://lib9.service.kugou.com/websearch/index.php?page=1&cmd=100&pagesize=9&keyword= +歌名 酷狗歌词编码:UTF-8 中文歌名转UTF8编码代码 1 function StrToHex(str: string; AEncoding: TEncoding): string; 2 var 3 ss: TStringStream; 4 i: Integer; 5 begin 6 Res

酷狗音乐下载

import requests,re,json #class 代表创建类 class Kugou:#类的第一个字母尽量大写,易于区分 def __init__(self): #设置函数本身私有成员 #网址可以拼接,也可以用format函数(格式化:把代码中{}替换{}可以写01234排序,也可以不写) #协议头header #ua---浏览器 ,很多网页需要加 #Referer 来路,来自于哪访问此网站,有时候用到 #Host 忘了怎么表达,不算常用 #Content - Type 一般post

Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲

在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天就来实战下,用他们来抓取酷狗音乐网上的 Top500排行榜音乐.接下来的代码中除了会用到HttpClient和Jsoup之外,还会用到log4j和ehcache,分别用来记录日志和实现缓存,如果看官对这两个不是很熟悉的话,请自行百度,现在网上的入门实例有很多,我就不专门记笔记了. 那为什么会想到爬取

仿酷狗音乐播放器开发日志二十四 选项设置窗体的实现(附328行xml布局源码)

转载请说明原出处,谢谢~~ 花了两天时间把仿酷狗的选项设置窗体做出来了,当然了只是做了外观.现在开学了,写代码的时间减少,所以整个仿酷狗的工程开发速度减慢了.今天把仿酷狗的选项设置窗体的布局代码分享出来,给学习duilib布局的朋友做个demo.现在编写的仿酷狗选项设置窗体和原酷狗的窗体不细看几乎看不出差别,控件的布局位置和原酷狗最多只有几个像素的位置差别. 先来看一下原酷狗的选项设置窗体的其中一个页面: 如果还不太会布局的朋友可以先看我前些日子写的关于duilib布局的博客<duilib各种布

仿酷狗音乐播放器开发日志二十一 开发动态调色板控件(附源代码)

转载请说明原出处,谢谢~~ 上一篇仿酷狗日志结束后,整个换肤功能就仅仅剩下调色板功能没有做了.我本以为会非常easy.可是研究了酷狗的调色板功能后发现不是那么简单的事情.首先看一下酷狗的调色板的样子: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvemh1aG9uZ3NodQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > waterm

酷狗音乐展示滚动歌词效果的控件实现

文章来自http://blog.csdn.net/zhaodecang 在音乐播放器项目中使用到酷狗音乐展示歌词的效果,需要支持修改字体.颜色.渐变色等功能 截图如下(效果不是很好,请下载Demo查看) 歌词绘制流程核心代码如下(具体实现过程请看Github源码) @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); // 中心Y坐标 float centerY = getHeight() / 2 + mTe

htmlunit+fastjson抓取酷狗音乐 qq音乐链接及下载

上次学了jsoup之后,发现一些动态生成的网页内容是无法抓取的,于是又学习了htmlunit,下面是抓取酷狗音乐与qq音乐链接的例子: 酷狗音乐: import java.io.BufferedInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.net.URL; import java.net.URLEncoder; import java.util.UUID; import

酷狗.Krc加密歌词解析

1 function KrcToLrc(filename: string): string; 2 function ZDecompressStr2(const S: TBytes): UTF8String; 3 var 4 BIn, BOut: TBytes; 5 begin 6 BIn := S; 7 ZDecompress(BIn, BOut); 8 Result := TEncoding.UTF8.GetString(BOut); 9 end; 10 11 const 12 miarry:

Qt实战之酷狗音乐

此项目仅仅实现实现基本功能: 界面的模仿. 歌词功能的实现.歌曲在线试听和下载. 专辑写真的播放. 在线歌词搜索.以及主要的button功能. 界面没有採用设计器. 所有手写规划.这里先放出效果图. 这段时间忙,等有空时,将又一次架构.一步一步带领新手写出简版酷狗音乐.实现MV等播放. 播放时的单词界面: 实现平滑滚动效果  当中背景写真来源于酷我音乐... 可点击进度条快进快退  .. 歌词会随之修改 . . 歌词支持拉动   鼠标在歌词部分按下后出现横线(可怜的鼠标没截图到. .. ) 然后