因为怕自己说明的不够详细,这里又不能贴图,所以我把详细的问题说明写到BLOG上,希望那位高手帮小弟解决下,分数不够我再送:
问题详细说明地址:
http://www.blogok.net/blogger2/sady/101268.shtml
小弟先谢过了!

解决方案 »

  1.   

    用正则提取 a href啊, 我没懂
      

  2.   

    呵呵
    我好久以前的公司,就做过类似的软件,关键所在就是如何分析html内容,抽出自己想要得。
    现在用.net的正则式可能要方便些,但是有很多细节要处理,不是一句两句能说得清楚。
      

  3.   

    [email protected]
    也給我發一點,學習學習!
      

  4.   

    不好意思,昨天晚上断网了!
    第一步提取,我已经实现了,包括主题问题,标题,URL,现在关键的是怎么样来实现第二步,第三步的提取,
    下面是我提取 URL的代码:
    ------------------------------------------------------------------------------------
    private void GetLinksThree(string code)
    {
    this.GetResult(code);//获取在线网页源代码
    System.Text.RegularExpressions.Regex ls = 
    new System.Text.RegularExpressions.Regex(@"\<td class=title14(?<objPerson>[^\]]*)\<td width=1 bgcolor=#747474 rowspan=2\>");//删除相关链接以外的内容 System.Text.RegularExpressions.MatchCollection mclk;
    mclk = ls.Matches(code);
    for(int i = 0; i < mclk.Count; i++)
    {   
    string strValue = mclk[i].Groups["objPerson"].ToString(); //这里是相关链接内容,一个Table,包含其他源码

    System.Text.RegularExpressions.Regex reg = new Regex(@"\<a[^>]+href=\s*(?:'(?<href>[^']+)'|""(?<href>[^""]+)""|(?<href>[^>\s]+))\s*[^>]*>(?<text>.*?)\<\/a\>", RegexOptions.IgnoreCase);//获取里面的url地址
    MatchCollection ms = reg.Matches(strValue);
    foreach(Match m in ms)
    {   
    string strHead = m.Groups["text"].Value;//url相对应的文本
    string strBody = m.Groups["href"].Value;//url地址
    ListViewItem item = this.listView1.Items.Insert(0, this.tbTitle.Text);//目标地址的文本主题,放到第二层的listview1的第一列
    item.SubItems.AddRange(new String[] { strHead, strBody });//url对应的文本,和url地址放到listview1的第二,第三列
    }
    }
    }
    ------------------------------------------
    下面是我采集,主题信息的代码:
    ------------------------------------------
    //把内容取出,显示出来sina
    private void  GetResult(string code)
    {
    //采集标题

    System.Text.RegularExpressions.Regex til = 
    new System.Text.RegularExpressions.Regex(@"\<th class=f24\>(?<objPerson>[^\]]*)\<\/th\>");
    System.Text.RegularExpressions.MatchCollection mct;
    mct = til.Matches(code);
    for(int i = 0; i < mct.Count; i++)
    {
    string strValue = mct[i].Groups["objPerson"].ToString();
    //this.textBox2.Text = strValue; 
    this.tbTitle.Text  = this.StripHTML(strValue);
    }
    //采集来源信息;
    System.Text.RegularExpressions.Regex c = 
    new System.Text.RegularExpressions.Regex(@"\<td height=20 align=center\>(?<objPerson>[^\]]*)\<td height=15\>");;
    System.Text.RegularExpressions.MatchCollection mcc;
    mcc = c.Matches(code);
    for(int i = 0; i < mcc.Count; i++)
    {
    string strValue = mcc[i].Groups["objPerson"].ToString();
    //this.textBox2.Text = strValue; 
    this.tbFrom.Text  =  this.StripHTML(strValue);
    }
    //采集主题信息;
    System.Text.RegularExpressions.Regex r = 
    new System.Text.RegularExpressions.Regex(@"\<div id=article\>(?<objPerson>[^\]]*)\<br clear=all\>");
    System.Text.RegularExpressions.MatchCollection mc;
    mc = r.Matches(code);
    for(int i = 0; i < mc.Count; i++)
    {
    string strValue = mc[i].Groups["objPerson"].ToString();

    this.tBTxt.Text  =  this.StripHTML(strValue);
    }
    this.tbDate.Text =  DateTime.Now.ToString();
    DgOperator.infoData(this.tbTitle.Text,this.tbFrom.Text,this.tBTxt.Text,this.tbDate.Text);//存入数据库

    }我是初学者,代码写的很乱,不好意思。
      

  5.   

    to:yuwenge(活得痛快) 解决了就结贴,谢谢,分数还可以再给