本帖最后由 zc1992912 于 2012-12-26 17:08:30 编辑

解决方案 »

  1.   

    用HtmlAgilityPack比较方便,需要写的话可以短消息我。
      

  2.   

    无非就是处理下=<>"几个字符的转义,别的照样写,用.+来表示需要匹配的东西。很简单的。
      

  3.   

    string keyword = "在那桃花盛开的地方";
    HtmlWeb htmlWeb = new HtmlWeb();
    HtmlDocument htmlDoc = htmlWeb.Load(@"http://music.baidu.com/search?key=" + HttpUtility.UrlEncode(keyword));
    HtmlNodeCollection lis = htmlDoc.DocumentNode.SelectNodes(@"//div[@id='result_container']/div/ul/li");
    foreach (HtmlNode li in lis)
    {
    HtmlNode titleAnchor = li.SelectSingleNode(@"div/span[@class='song-title']/a[1]");
    HtmlNode singerAnchor = li.SelectSingleNode(@"div/span[@class='singer']/span/a");
    Response.Write(HttpUtility.HtmlEncode(titleAnchor.OuterHtml) + "<br/>" + HttpUtility.HtmlEncode(singerAnchor.OuterHtml));
    Response.Write("<br/><br/>");
    }
    以上在ASP.NET下运行通过,命令行或Winform下把输出语句改下、html编码去掉就行了,更简单。
    自己下载HtmlAgilityPack:参考:
    http://zhoufoxcn.blog.51cto.com/792419/595344http://blog.csdn.net/dalmeeme/article/details/7191793