private string[] GetMusic(string href)
{
string[] re = new string[2];
try
{
string title = href.ToLower().Substring(href.ToLower().IndexOf("来源网址:") + 5).Trim();
title = title.Substring(0,title.IndexOf("请参照百度权利")-1).Trim();
if(href.LastIndexOf("<")-href.IndexOf(">") - 1>=0)
re[0] = href.Substring(href.IndexOf(">") + 1,href.LastIndexOf("<")-href.IndexOf(">") - 1).Trim();
re[1] =title;
}
catch(Exception e)
{
}
return re;
}
public ArrayList[] GetBaiduMusic(string MusicName,int page)
{
string SearchStr = "";
ArrayList[] lists = new ArrayList[2];
lists[0] = new ArrayList();
lists[1] = new ArrayList();
MusicName = MusicName.Trim();
for(int i=0;i<MusicName.Length;i++)
{
string code = MusicName[i].ToString();
byte[] arr = System.Text.Encoding.Default.GetBytes(code);
if(arr.Length > 1)
{
SearchStr = SearchStr + "%" + Microsoft.VisualBasic.Conversion.Hex(arr[0])
+ "%" + Microsoft.VisualBasic.Conversion.Hex(arr[1]);
}
else
{
SearchStr = SearchStr + "%" + Microsoft.VisualBasic.Conversion.Hex(arr[0]);
}
}
WebClient client = new WebClient();
try
{
page = (page -1) * 30;
byte[] data=client.DownloadData(Manager.Dothings.BaiduMusicHead + SearchStr + Manager.Dothings.BaiduMusicEnd + page.ToString());
string html = System.Text.Encoding.Default.GetString(data);
Regex regex=new Regex("<a.*title.*</a>",RegexOptions.IgnoreCase);
MatchCollection matches= regex.Matches(html);
foreach( Match match in matches)
{
string[] arr= this.GetMusic(match.Value);
lists[0].Add(arr[0]);
lists[1].Add(arr[1]);
}
return lists;
}
catch(Exception e)
{
return null;
}
}
//要引用Visual Basic.Net类库,
//调用 ArrayList[] arr= GetBaiduMusic("中国人",1); //这是的歌曲名为“中国人”的第一页列表,//得到的arr[0] 是歌曲名称的ArrayList,arr[1] 是歌曲地址的ArrayList
{
string[] re = new string[2];
try
{
string title = href.ToLower().Substring(href.ToLower().IndexOf("来源网址:") + 5).Trim();
title = title.Substring(0,title.IndexOf("请参照百度权利")-1).Trim();
if(href.LastIndexOf("<")-href.IndexOf(">") - 1>=0)
re[0] = href.Substring(href.IndexOf(">") + 1,href.LastIndexOf("<")-href.IndexOf(">") - 1).Trim();
re[1] =title;
}
catch(Exception e)
{
}
return re;
}
public ArrayList[] GetBaiduMusic(string MusicName,int page)
{
string SearchStr = "";
ArrayList[] lists = new ArrayList[2];
lists[0] = new ArrayList();
lists[1] = new ArrayList();
MusicName = MusicName.Trim();
for(int i=0;i<MusicName.Length;i++)
{
string code = MusicName[i].ToString();
byte[] arr = System.Text.Encoding.Default.GetBytes(code);
if(arr.Length > 1)
{
SearchStr = SearchStr + "%" + Microsoft.VisualBasic.Conversion.Hex(arr[0])
+ "%" + Microsoft.VisualBasic.Conversion.Hex(arr[1]);
}
else
{
SearchStr = SearchStr + "%" + Microsoft.VisualBasic.Conversion.Hex(arr[0]);
}
}
WebClient client = new WebClient();
try
{
page = (page -1) * 30;
byte[] data=client.DownloadData(Manager.Dothings.BaiduMusicHead + SearchStr + Manager.Dothings.BaiduMusicEnd + page.ToString());
string html = System.Text.Encoding.Default.GetString(data);
Regex regex=new Regex("<a.*title.*</a>",RegexOptions.IgnoreCase);
MatchCollection matches= regex.Matches(html);
foreach( Match match in matches)
{
string[] arr= this.GetMusic(match.Value);
lists[0].Add(arr[0]);
lists[1].Add(arr[1]);
}
return lists;
}
catch(Exception e)
{
return null;
}
}
//要引用Visual Basic.Net类库,
//调用 ArrayList[] arr= GetBaiduMusic("中国人",1); //这是的歌曲名为“中国人”的第一页列表,//得到的arr[0] 是歌曲名称的ArrayList,arr[1] 是歌曲地址的ArrayList
解决方案 »
- 资源文件中包含的资源 为何程序中找不到?
- 怎样将数据库中表的内容显示在datagridview中,谢谢
- 请问,在c#中,如何使用剪贴板?
- 正则 表达式问题
- 在C#程序里面如何打开一个可执行程序?
- 在C#窗体中打开一个子界面时父界面怎么关闭
- 从EXCEL里检索数据的问题?
- c++转c#的问题,如何从文件中读取一个结构体?fixed (Test* p = new Test()) 报错,fixed不能用于自定义的结构体吗?
- 谁能介绍一下.net下面的组件,控件,web控件和以前的控件,com的关系?
- 征求各位学JAVA与学C#哪个好学些呢?
- VS2005中的线程和委托问题,请帮助我吧!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- dotnet生成的可执行文件和程序集只能杂乱的放在一个目录下面吗
public static string BaiduMusicHead ="http://mp3.baidu.com/m?z=0&cl=3&ct=134217728&sn=&lm=-1&cm=1&sc=1&bu=&rn=30&tn=baidump3&word=";public static string BaiduMusicEnd ="&pn=";
它的返回值是很普通的ArrayList[],你可以把它转换成各种数据类型。
调用 ArrayList[] arr= GetBaiduMusic("中国人",1); 这是得到歌曲名为“中国人”的第一页列表, 得到的arr[0] 是歌曲名称的ArrayList,arr[1] 是歌曲地址的ArrayList