读取网页特定位置的信息,比如数值和图片,如何实现?给出相应的类,提示一下吧
如果不能容易的读取信息,那么如何将网页保存为文本格式?
两个问题解决任何一个都行,谢啦!

解决方案 »

  1.   

    抓取博客园首页推荐文章:
    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)
    Console.WritleLine(anchor.InnerHtml);需要用到HtmlAgilityPack这个第三方库。s里面就是网页html代码。
      

  2.   

    Console.WritleLine(anchor.InnerHtml);=》
    Console.WriteLine(anchor.InnerHtml);
      

  3.   

    a.下载网页数据;
    b.处理网页得到想要的数据;
    c.保存数据对于a有三种方式
    1.使用WebClient下载  2.使用HttpWebRequest和HttpWebResponse 3.使用WebBrowser对于b
    1.正则表达式匹配; 2.使用HtmlAgilityPack对于c  按个人需求而定
      

  4.   


    抓取网页信息的类
    方法和1楼差不多,只是写成了类
    http://blog.csdn.net/yysyangyangyangshan/article/details/6661886
      

  5.   

    這個控件更強http://www.polestarsoft.com/products/htmlcapture-net/
      

  6.   

    HtmlAgilityPack看了一下,对于完全不懂网络的我有点难度
    我的目的是将网页另存为TXT,就这点要求
      

  7.   

    就比如我要提取咱们这个页面的信息吧,我的代码“
    //从url里获得web请求对象
                            WebRequest wrt = WebRequest.Create(@"http://topic.csdn.net/u/20120508/09/b02a45d0-936a-4eb7-b502-f1706fc19810.html?seed=1621418763&r=78530830#r_78530830");
                            //利用web响应对象获得请求对象的信息
                            WebResponse wrse = wrt.GetResponse();
                            //利用文件流对象获得响应对象的流信息转换成文件流文件
                            Stream strM = wrse.GetResponseStream();
                            //防止乱码
                            StreamReader SR = new StreamReader(strM, Encoding.GetEncoding("UTF-8"));
                            string strallstrm = SR.ReadToEnd();
    byte[] array = Encoding.UTF8.GetBytes(str);     
                            MemoryStream stream = new MemoryStream(array);
                            StreamWriter writer = new StreamWriter(stream, Encoding.UTF8 );
                            string addr = @"C:\新建 文本文档.txt";
                            File.Create(addr );
                            writer.Write(addr);
                            writer.Flush();
                            writer.Close();
                            stream.Close();结果是  新建 文本文档.txt  里边有很多无用信息,例如<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta content="抓取网页信息 网页保存为文本 .NET技术 C#" name="Keywords"/>
    <meta content="读取网页特定位置 信息 比如数值和图片 如何实现 给出相应 类 提示一下吧 如果不能容易 读取信息 那么如何将网页保存为文本格式 两个问题解决任何一个都行 谢啦" name="description"/>
    <title>抓取网页信息    网页保存为文本 - .NET技术 / C#</title>
    <link href="http://c.csdn.net/bbs/t/5/t5.css" rel="stylesheet" type="text/css" />
    <link href="http://www.csdn.net/images/favicon.ico" rel="SHORTCUT ICON" />
    <script type="text/javascript">
    var tinfo = {
    pdate: "2012-05-08 09:55:12"
    ,sid: "e2798a59-79d5-4833-9c57-87d46a8b907a"
    ,tid: "b02a45d0-936a-4eb7-b502-f1706fc19810"
    ,ba: "DotNET"
    ,sa: "CSharp"
    };
    </script>
    <script type="text/javascript" src="/u/t5/t5.js"></script>
    <script type="text/javascript" src="http://counter.csdn.net/a/js/AreaCounter.js"></script>
    </head>
    <body id="bbscsdn_wrap"><script src="http://csdnimg.cn/pubnav/js/pub_topnav.js" type="text/javascript"></script>
    <div class="tad">
        <iframe id="Topic_Top" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" width="100%" height="0" src="/u/t5/include/ad1.asp?pdate=2012-05-08 09:55:12&ba=DotNET&sa=CSharp"></iframe>
    </div>
    <div class="nav">
        <a href="#">
            <img class="logo" alt="" src="http://c.csdn.net/bbs/t/5/i/pic_logo.gif">
        </a>
        <ul class="searchpanel">
            <li>
                <input id="search_key" name="key" type="text" onkeyup="GoKeyDown(event);" onblur="if(!this.value)this.value='这里也许就有你要的答案... ';return true;" onfocus="if(this.value=='这里也许就有你要的答案... ')this.value='';return true;" value="这里也许就有你要的答案... " size="25">
                <input class="btn" type="image" onclick="Search(event,'');return false;" src="http://c.csdn.net/bbs/t/5/i/search_btn.jpg">
            </li>
        </ul>
    </div>
    <input type="hidden" id="hf_cardUrl" value="http://forum.csdn.net/PointForum/UserCard.ashx?user=" />
    <!---#-include file="topic_top.html" -->
    <iframe id="frm_tt1" src="about:blank" style="width:980px;height:120px;" scrolling="no" frameborder="0"></iframe>
    <script type="text/javascript">
        setTimeout(function () {
            document.getElementById("frm_tt1").src = "/u/t5/include/topic_top.html";
        }, 5000);
    </script><div class="loc">
    我想要的结果是浏览器另存为TXT的结果,这样:
    抓取网页信息 网页保存为文本 - .NET技术 / C#欢迎wang_da2我的:收件箱资源博客空间设置|帮助|退出CSDN首页 资讯 论坛 博客 下载 
      搜索 更多CTO俱乐部 
        学生大本营 
        培训充电 
        移动开发 
        软件研发 
        云计算 
        程序员 
        ITeye<> 
        TUP 
       
     CSDN-CSDN社区-.NET技术-C# 管理菜单 生成帖子 置顶 取消置顶推荐 取消推荐 锁定 解锁 移动 编辑 删除 帖子加分 
              帖子高亮 取消高亮 
      结  帖 发  帖 回  复 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 抓取网页信息 网页保存为文本[问题点数:100分] 
            wang_da
             
            (wang_da)         等 级: 
            结帖率:83.33%       楼主发表于:2012-05-08 09:55:12读取网页特定位置的信息,比如数值和图片,如何实现?给出相应的类,提示一下吧
                如果不能容易的读取信息,那么如何将网页保存为文本格式?
                两个问题解决任何一个都行,谢啦!        对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:7 
             
            dalmeeme
             
            (无机の剑)         等 级: 
          #1楼 得分:0回复于:2012-05-08 10:07:52抓取博客园首页推荐文章:
                  C# code        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)
                Console.WritleLine(anchor.InnerHtml);
                需要用到HtmlAgilityPack这个第三方库。            s里面就是网页html代码。
      

  8.   

    不好意思,上边回复的帖子排版有些乱就比如我要提取咱们这个页面的信息吧,我的代码
    //从url里获得web请求对象
      WebRequest wrt = WebRequest.Create(@"http://topic.csdn.net/u/20120508/09/b02a45d0-936a-4eb7-b502-f1706fc19810.html?seed=1621418763&r=78530830#r_78530830");
      //利用web响应对象获得请求对象的信息
      WebResponse wrse = wrt.GetResponse();
      //利用文件流对象获得响应对象的流信息转换成文件流文件
      Stream strM = wrse.GetResponseStream();
      //防止乱码
      StreamReader SR = new StreamReader(strM, Encoding.GetEncoding("UTF-8"));
      string strallstrm = SR.ReadToEnd();
    byte[] array = Encoding.UTF8.GetBytes(str);   
      MemoryStream stream = new MemoryStream(array);
      StreamWriter writer = new StreamWriter(stream, Encoding.UTF8 );
      string addr = @"C:\新建 文本文档.txt";
      File.Create(addr );
      writer.Write(addr);
      writer.Flush();
      writer.Close();
      stream.Close();结果是 新建 文本文档.txt 里边有很多无用信息,例如
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta content="抓取网页信息 网页保存为文本 .NET技术 C#" name="Keywords"/>
    <meta content="读取网页特定位置 信息 比如数值和图片 如何实现 给出相应 类 提示一下吧 如果不能容易 读取信息 那么如何将网页保存为文本格式 两个问题解决任何一个都行 谢啦" name="description"/>
    <title>抓取网页信息 网页保存为文本 - .NET技术 / C#</title>
    <link href="http://c.csdn.net/bbs/t/5/t5.css" rel="stylesheet" type="text/css" />
    <link href="http://www.csdn.net/images/favicon.ico" rel="SHORTCUT ICON" />
    <script type="text/javascript">
    var tinfo = {
    pdate: "2012-05-08 09:55:12"
    ,sid: "e2798a59-79d5-4833-9c57-87d46a8b907a"
    ,tid: "b02a45d0-936a-4eb7-b502-f1706fc19810"
    ,ba: "DotNET"
    ,sa: "CSharp"
    };
    </script>
    <script type="text/javascript" src="/u/t5/t5.js"></script>
    <script type="text/javascript" src="http://counter.csdn.net/a/js/AreaCounter.js"></script>
    </head>
    <body id="bbscsdn_wrap"><script src="http://csdnimg.cn/pubnav/js/pub_topnav.js" type="text/javascript"></script>
    <div class="tad">
      <iframe id="Topic_Top" marginwidth="0" marginheight="0" frameborder="0" scrolling="no" width="100%" height="0" src="/u/t5/include/ad1.asp?pdate=2012-05-08 09:55:12&ba=DotNET&sa=CSharp"></iframe>
    </div>
    <div class="nav">
      <a href="#">
      <img class="logo" alt="" src="http://c.csdn.net/bbs/t/5/i/pic_logo.gif">
      </a>
      <ul class="searchpanel">
      <li>
      <input id="search_key" name="key" type="text" onkeyup="GoKeyDown(event);" onblur="if(!this.value)this.value='这里也许就有你要的答案... ';return true;" onfocus="if(this.value=='这里也许就有你要的答案... ')this.value='';return true;" value="这里也许就有你要的答案... " size="25">
      <input class="btn" type="image" onclick="Search(event,'');return false;" src="http://c.csdn.net/bbs/t/5/i/search_btn.jpg">
      </li>
      </ul>
    </div>
    <input type="hidden" id="hf_cardUrl" value="http://forum.csdn.net/PointForum/UserCard.ashx?user=" />
    <!---#-include file="topic_top.html" -->
    <iframe id="frm_tt1" src="about:blank" style="width:980px;height:120px;" scrolling="no" frameborder="0"></iframe>
    <script type="text/javascript">
      setTimeout(function () {
      document.getElementById("frm_tt1").src = "/u/t5/include/topic_top.html";
      }, 5000);
    </script><div class="loc">
    我想要的结果是浏览器另存为TXT的结果,这样:抓取网页信息 网页保存为文本 - .NET技术 / C#欢迎wang_da2我的:收件箱资源博客空间设置|帮助|退出CSDN首页 资讯 论坛 博客 下载  
      搜索 更多CTO俱乐部  
      学生大本营  
      培训充电  
      移动开发  
      软件研发  
      云计算  
      程序员  
      ITeye<>  
      TUP  
        
     CSDN-CSDN社区-.NET技术-C# 管理菜单 生成帖子 置顶 取消置顶推荐 取消推荐 锁定 解锁 移动 编辑 删除 帖子加分  
      帖子高亮 取消高亮  
      结 帖 发 帖 回 复 收藏 不显示删除回复显示所有回复显示星级回复显示得分回复 抓取网页信息 网页保存为文本[问题点数:100分]  
      wang_da
        
      (wang_da)    等 级:  
      结帖率:83.33%    楼主发表于:2012-05-08 09:55:12读取网页特定位置的信息,比如数值和图片,如何实现?给出相应的类,提示一下吧
      如果不能容易的读取信息,那么如何将网页保存为文本格式?
      两个问题解决任何一个都行,谢啦!  对我有用[0] 丢个板砖[0] 引用 举报 管理 TOP 回复次数:7  
        
      dalmeeme
        
      (无机の剑)    等 级:  
      #1楼 得分:0回复于:2012-05-08 10:07:52抓取博客园首页推荐文章:
      C# code 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)
      Console.WritleLine(anchor.InnerHtml);
      需要用到HtmlAgilityPack这个第三方库。  s里面就是网页html代码。
    请大家帮忙看看怎么实现,谢谢了!