Translate Into English Coffee & Tea
ASP.NET 中的 AJAX ASP.NET 画图全接触 ASP.NET 与 XML 声明式数据绑定 ASP.NET 网页抓取
C# 基础 C# 类教程 C# 加密 ASP.NET 成员资格 非“自动化”处理 Excel
QuickAjax Ajax 完美的语法高亮器 Silverlight Popfly
通栏广告
ASP.NET 抓取网页内容-文字

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>

相关阅读

文章评论
  • 评论

标题:必填
内容:
文章信息