asp.net 抓取网页内容需要三个类:WebRequest、WebResponse、StreamReader。
WebRequest、WebResponse 的名称空间是:
System.Net
StreamReader 的名称空间是:
System.IO
ASP.NET抓取网页内容核心代码
- 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>
这样就实现了ASP.NET抓取网页内容。
【编辑推荐】