接到一个需求,要抓取论坛的所有板块 title 和 url,主要是三种,discuz,phpwind和动网的.
http://www.discuz.net/比如这个网页,需要抓取"Comsenz团队日志"+url 
"建站交流" + url 
"中国站长俱乐部" +url类似 这个等级的板块.希望大家可以给点思路或者演示代码(如果有最好啦,呵呵)目前我使用的是正则表达式 方法,但是 这种方法效果不是很理想,例如虽然都是discuz核心,但是其中的模版之类的差距,使得正则用起来和棘手.论坛的类型都一样,假设全部都是discuz,但是有 一百个站,使用的模版,discuz的版本好也有可能不同.不知道使用DOM树的方式是否可以,求指导.思路僵化,希望各路神仙搭救小弟一把.谢谢各位大神.
 

解决方案 »

  1.   

    进来学习一下DOM树的方式是在Javascript里用的吧,能在C#里用吗。
    XML节点的话是可以取到的。
      

  2.   

    可以
    wb1.Document.InvokeScript("scriptFunc", new String[] { "alert('good');" });
      

  3.   

    刚试了WebBrowser加载源文件,然后解析其中的Document,感觉也没啥突破,希望各位大神帮帮我
      

  4.   

    用HtmlAgilityPack,用XPath表达式查询,基于Dom的。
      

  5.   

    能不能给个实现方法,这个是把html解析为DOM数了,但是具体内容怎么判断抓取啊?求指教
      

  6.   

    如果需要分析的网站不是太多,做一个xml放一些xpath就可以了,之后可以用HtmlAgilityPack
    或者直接对每种不同的html做一个正则也是可行的如果网站太多的话,用HtmlAgilityPack的话只能分析他们的共同点了,比如他们都会长成什么样子,InnerText都是什么样的等等
      

  7.   

    基本上就是 百度下来 所有的discuz论坛. 压力很大啊
      

  8.   

    采集博客园首页推荐文章标题文字:
    HttpWebRequest httpWebRequest = WebRequest.Create(@"http://www.cnblogs.com") as HttpWebRequest;
    HttpWebResponse httpWebResponse = httpWebRequest.GetResponse() as HttpWebResponse;
    Stream stream = httpWebResponse.GetResponseStream();
    StreamReader reader = new StreamReader(stream, Encoding.UTF8);
    string s = reader.ReadToEnd();
    reader.Close();
    stream.Close();
    httpWebResponse.Close();
    HtmlDocument htmlDoc = new HtmlDocument();
    htmlDoc.LoadHtml(s);
    HtmlNodeCollection anchors = htmlDoc.DocumentNode.SelectNodes(@"//a[@class='titlelnk']");
    foreach (HtmlNode anchor in anchors)
    Response.Write(anchor.InnerHtml + "<br/>");
    Response.End();
    XPath语法参考:http://www.w3school.com.cn/xpath/xpath_syntax.asp
      

  9.   

    谢谢各位大神的 回答,但是我还是没找到我想要的.有没有兄弟可以找到 大部分 discuz的论坛板块的 公共特点?比如 都是在一个 table标签里面,或者其他的?下载网页的方法我已经明白了,希望大家多多回答这个问题.谢谢诸位.
      

  10.   

    对这个多样化的页面,用垂直抓取的思想是不合理的!
    正则和xpath都是有针对性的东西,做模版不太灵活
    我也是做抓取的,对这种需要也感到无语!
      

  11.   

    取所有链接,找query是?gid=?fid=的、结尾是forum-xx-1.html的、fid-x.html的......
      

  12.   

    照,对我帮助很大,xpath不熟悉,想了想还是使用正则,不希望能抓取百分百的信息了,只要能无限接近就行,这些可以抓取 40% 左右的信息,还有木有,有木有?