ASP.NET 抓取网页内容-文字

作者:vkvi 来源:千一网络(原创) 日期:2007-8-13

ASP.NET 中抓取网页内容是非常方便的,而其中更是解决了 ASP 中困扰我们的编码问题。

需要三个类:WebRequest、WebResponse、StreamReader。

WebRequest、WebResponse 的名称空间是:

System.Net

StreamReader 的名称空间是:

System.IO

核心代码

WebRequest request = WebRequest.Create("http://www.cftea.com/");
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
  • WebRequest 类的 Create 为静态方法,参数为要抓取的网页的网址;
  • Encoding 指定编码,Encoding 中有属性 ASCII、UTF32、UTF8 等全球通用的编码,但没有 gb2312 这个编码属性,所以我们使用 GetEncoding 获得 gb2312 编码。

示例

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Net" %>
<%@ Import Namespace="System.IO" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
    void Page_Load(object sender, EventArgs e)
    {
        try
        {
            WebRequest request = WebRequest.Create("http://www.cftea.com/");
            WebResponse response = request.GetResponse();
            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
            
            tb.Text = reader.ReadToEnd();
            
            reader.Close();
            reader.Dispose();
            response.Close();
        }
        catch (Exception ex)
        {
            tb.Text = ex.Message;
        }
    }
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>抓取网页内容 - 千一网络</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="tb" runat="server" Width="500" Height="300" TextMode="multiLine"></asp:TextBox>
    </div>
    </form>
</body>
</html>

相关阅读

你前面那位网友看了:利用下拉菜单选择页面

▲▲▲嘿,欢迎转载传播本站原创文章,尽量保留来源噢。▲▲▲

文章评论
  • 1 楼:评论
    文章简洁而明了,一个很好网站!贴子也很好
  • 2 楼:路人甲
    同意,文章做的非常漂亮。
    非常具有实际意义。
  • 3 楼:评论
    同意,这么好的网站今天才发现!
  • 4 楼:评论
    编码有问题,如果不是gb2312编码的网页,得到的就是乱码
  • 5 楼:评论
    如何抓取网站的一小部份内容呢
赞助商们