C# 实现抓取网站页面内容的实例方法

 更新时间:2013年08月19日 15:30:00   作者:  
这篇文章介绍了C# 实现抓取网站页面内容的实例方法,有需要的朋友可以参考一下

抓取新浪网的新闻栏目,如图所示:

使用 谷歌浏览器的查看源代码: 通过分析得知,我们所要找的内容在以下两个标签之间:

复制代码 代码如下:

<!-- publish_helper name='要闻-新闻' p_id='1' t_id='850' d_id='1' -->

内容。。。。

<!-- publish_helper name='要闻-财经' p_id='30' t_id='98' d_id='1' -->


如图所示:

内容。。。。

使用VS建立一个如图所示的网站:

我们下载网络数据主要通过   WebClient 类来实现。

使用下面源代码获取我们选择的内容:

复制代码 代码如下:

protected void Enter_Click(object sender, EventArgs e)
        {
            WebClient we = new WebClient();  //主要使用WebClient类
            byte[] myDataBuffer;
            myDataBuffer = we.DownloadData(txtURL.Text);  //该方法返回的是 字节数组,所以需要定义一个byte[]
            string download = Encoding.Default.GetString(myDataBuffer);  //对下载的数据进行编码

          
            //通过查询源代码,获取某两个值之间的新闻内容
            int startIndex = download.IndexOf("<!-- publish_helper name='要闻-新闻' p_id='1' t_id='850' d_id='1' -->");
            int endIndex = download.IndexOf("<!-- publish_helper name='要闻-财经' p_id='30' t_id='98' d_id='1' -->");

            string temp = download.Substring(startIndex, endIndex - startIndex + 1);  //截取新闻内容

            lblMessage.Text = temp;//显示所截取的新闻内容
        }


效果如图:

最后: 除了把下载的数据保存为文本以外,还可以保存为 文件类型 和 流 类型。

复制代码 代码如下:

WebClient wc = new WebClient();
            wc.DownloadFile(TextBox1.Text, @"F:\test.txt");
            Label1.Text = "文件下载完成";

复制代码 代码如下:

WebClient wc = new WebClient();
            Stream  s =  wc.OpenRead(TextBox1.Text);

            StreamReader sr = new StreamReader(s);
            Label1.Text =  sr.ReadToEnd();

相关文章

  • .NET 数据库连接池

    .NET 数据库连接池

    如果您通过使用另一个 Execute 方法(例如,ExecuteScalar、ExecuteNonQuery 和 ExecuteXMLReader)执行查询
    2008-12-12
  • asp.net(c#)实现从sqlserver存取二进制图片的代码

    asp.net(c#)实现从sqlserver存取二进制图片的代码

    有一个员工表Employee,需要保存员工照片(Photo)到数据库(sql server)上。员工照片对应的字段是varbinary(max),也就是要存成二进制文件类型(这和以前讨巧地存图片文件路径就不相同了),默认可以为空。
    2011-09-09
  • ASP.NET MVC实现树形导航菜单

    ASP.NET MVC实现树形导航菜单

    这篇文章介绍了ASP.NET MVC实现树形导航菜单的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • asp.net TextBox回车触发事件 图片在img显示

    asp.net TextBox回车触发事件 图片在img显示

    TextBox回车触发事件 数据库取图片在img显示
    2009-10-10
  • 详解ASP.NET中Session的用法

    详解ASP.NET中Session的用法

    我们可以使用 Session 对象存储特定的用户会话所需的信息,这篇文章就为大家详细介绍了ASP.NET中Session的用法,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • asp.net core 中的Jwt(Json Web Token)的使用详解

    asp.net core 中的Jwt(Json Web Token)的使用详解

    session不支持分布式并且在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这篇文章主要介绍了asp.net core 中的Jwt(Json Web Token)的使用,需要的朋友可以参考下
    2022-10-10
  • asp.net 特定目录form验证

    asp.net 特定目录form验证

    前几听我的一个同事说form验证,我也只是听说过,说是一个很简单的验证,最近也在做一个小型的企业网站(因为刚进公司不久,老板就给了单独一个小项目练练手)。
    2009-06-06
  • 关于 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。的解决方法

    关于 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。的解决方法

    这篇文章主要介绍了尝试读取或写入受保护的内存。这通常指示其他内存已损坏。的解决方法,有需要的朋友可以参考一下
    2013-12-12
  • asp.net ListView交替背景颜色实现代码

    asp.net ListView交替背景颜色实现代码

    在asp.net中ListView的交替背景颜色实现,GridView的处理得较多,ListView可以这样实现。
    2010-02-02
  • 解析如何利用一个ASP.NET Core应用来发布静态文件

    解析如何利用一个ASP.NET Core应用来发布静态文件

    本文主要通过一些简单的实例来体验一下如何在一个ASP.NET Core应用中发布静态文件。针对不同格式的静态文件请求的处理,ASP.NET Core为我们提供了三个中间件,它们将是本系列文章论述的重点。有需要的朋友可以看下
    2016-12-12

最新评论