0.前言
好久没在CSDN上写东西了,看了之前开发的下载器由于三个网站代码更新已经不能用了,应要求,重分析了三个网站播放机制,写了1.3版本的下载器,在我的资源里有下载。
贴个地址:https://download.csdn.net/download/mnikkqqw/10675530
1.代码更新
这次代码更新,引入了Newtonsoft.Json.dll解析json文件,以前那个是自己写的解析器,太麻烦,用别人现成的就行。核心业务代码基本没有变动,只是更新了分析网站资源的代码,解决了一下之前列表栏滚动条不可用的问题,工具还是有很多问题的,不影响使用没改。
分析和添加喜马拉雅音频的代码:
if (ResourceBox.Lines[i].IndexOf("ximalaya") > -1) //处理喜马拉雅FM下载地址
{
try
{
string url = ResourceBox.Lines[i];
string html = CommonMethds.GetHttpWebRequest(url);
if (html == "网络状况不佳!")
html = CommonMethds.GetWebClient(url);
Regex reg = new Regex(@"\->[1-9]\d*\<!", RegexOptions.Multiline | RegexOptions.IgnoreCase);
Match mc = reg.Match(html);
string temp = mc.Value.Trim();
temp = temp.Replace("->", "").Replace("<!", "");
int ResoucesCount = int.Parse(temp);
int pageCount = ResoucesCount / 100 + 1;
string albumId = Regex.Replace(url, @"[^0-9]+", "").ToString();
for (int k = 1; k <= pageCount; k++)
{
string tempUrl = "https://www.ximalaya.com/revision/play/album?albumId=" + albumId + "&pageNum=" + k + "&sort=-1&pageSize=100";
string JsonSources = CommonMethds.GetHttpWebRequest(tempUrl);
JObject jobj = (JObject)JsonConvert.DeserializeObject(JsonSources);
string data = jobj["data"].ToString();
jobj = (JObject)JsonConvert.DeserializeObject(data);
string tracksAudioPlay = jobj["tracksAudioPlay"].ToString();
JArray soundInfos = (JArray)JsonConvert.DeserializeObject(tracksAudioPlay);
int count = soundInfos.Count;
for (i