JAVA中有类帮助实现,这里有篇JAVA的文章:
http://www.chinajavaworld.net/doc/lang/46.htmlC#中又该如何做呢?

解决方案 »

  1.   

    A Yacc grammar for HTML
    http://www.di.unito.it/mail_archive/YACCHTML/0000.htmlAn Elementary HTML Parser
    http://www.codeproject.com/csharp/HTMLParser.asp
      

  2.   

    or getGotDotNet User Sample: SgmlReader 1.1 
    http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=B90FDDCE-E60D-43F8-A5C4-C3BD760564BC
      

  3.   

    其实每个生成的html页面都可以把它们提炼成一个xml文件, 你就寻找此文件中是否包含了<A>,
    <TABLE> 这种标签的字符串, 取得它们的内容, 起始位置就是"<A...", 结束位置就是再找到一个"/A>"然后再分析<a 里面的各个属性的名称和值,,做起来也很有意思可惜偶有其它东东要忙
      

  4.   

    正则表达式中不是有分组和命名捕获字符串有匹配这项吗?我觉得应该可行。
    如从 URL 提取协议和端口号
    String Extension(String url)    {      Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",         RegexOptions.Compiled);      return r.Match(url).Result("${proto}${port}");    }
      

  5.   

    如果碰到都是规则的HTML代码还好,要是碰到写的不很规范的(但是你不能说有错),分析起来难度就大多了.不知道大家有什么好的建议?
      

  6.   

    知道csc干嘛的把,它有个过程是词法分析器分析词法。
    实际上html也是门语言,它也有词法分析器,如果不闲麻烦,可以做个简单点的词法分析器,来实现你的这些功能,这也不是很难的,只是有点麻烦。正则表达式的话只要你的表达式精确,应该是没有问题的。
      

  7.   

    var images = document.all.tags("IMG");
    for (var iImgCounter = 0; iImgCounter < images.length; iImgCounter++) {
    var imgTmp = images(iImgCounter);
    var urlTmp = imgTmp.href;.....
      

  8.   

    【利用 Microsoft 的 HTML 分析器来获得 Web 站点的数据】http://www.microsoft.com/china/msdn/workshop/scrape.asp#top看看就知道怎么做了,我想这样做才是最好的解决方案大家一起学习....