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

解决方案 »

  1.   

    还要加上常数
    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=";
      

  2.   

    楼主的意思是用这代码把百度当WebService用
      

  3.   

    以上代码能得到百渡搜索的一定名称的歌曲的名称和地址的列表
    它的返回值是很普通的ArrayList[],你可以把它转换成各种数据类型。
    调用  ArrayList[] arr= GetBaiduMusic("中国人",1); 这是得到歌曲名为“中国人”的第一页列表, 得到的arr[0] 是歌曲名称的ArrayList,arr[1] 是歌曲地址的ArrayList