c#抓取网页数据(利用C#和.NET提供的类来轻松创建一个的程序)
优采云 发布时间: 2022-04-08 06:04c#抓取网页数据(利用C#和.NET提供的类来轻松创建一个的程序)
本文使用 C# 和 .NET 提供的类,轻松创建抓取网页内容源代码的程序。HTTP 是在 WWW 上进行数据访问的最基本协议之一。.NET的基本类型库类中提供了两个对象类:HTTPWebRequest和HTTPWebResponse,分别用于向资源发送请求和获取响应。为了获取一个资源的内容,我们首先指定一个我们要抓取的URL地址,使用HTTPWebRequest对象发出请求,使用HTTPWebResponse对象接收响应的结果,最后使用TextStream对象提取我们想要的信息并在控制台打印出来。
下面看一下如何实现这样的功能:
(1)打开VS.NET,点击“文件”-“新建”-“项目”,项目类型选择“Visual C#项目”,模板选择“Windows应用程序”,
(2)Form1中添加Label1、Button1、TextBox1、TextBox2四个控件,将TextBox2的Multiline属性改为True,
(3)右击Form1表单,选择“查看代码”,然后在顶部输入:
使用 System.IO;
使用 System.Net;
使用 System.Text;
私人无效按钮1_Click(对象发送者,System.EventArgs e)
{
}
在括号内输入以下代码:
字节[] buf = 新字节[38192];
HttpWebRequest 请求 = (HttpWebRequest)
WebRequest.Create(textBox1.Text);
HttpWebResponse 响应 = (HttpWebResponse)
请求.GetResponse();
流 resStream = response.GetResponseStream();
int count = resStream.Read(buf, 0, buf.Length);
textBox2.Text = Encoding.Default.GetString(buf, 0,
数数);
resStream.Close();
(4)all”按钮,按“F5”运行应用程序,在“请输入URL地址:”后的单行文本框中输入,点击“获取HTML代码”按钮,即可看到地址的代码!
接下来,我们将对上述程序做一个分析:
上述程序的作用是抓取网页内容,并在多行文本框中显示 HTML 代码。由于返回的数据是字节类型的,我们创建一个字节类型的数组变量,名为 buf 来存储请求返回的结果,其中数组的大小与我们要请求返回的数据的大小有关。
首先,我们实例化 HttpWebRequest 对象,并使用 WebRequest 类的静态方法 Create()。该方法的字符串参数是我们要请求的页面的URL地址。由于Create()方法返回的是WebRequest类型,所以我们必须将Model(即类型转换)转换为HttpWebRequest类型,然后赋值给request变量。一旦我们创建了 HttpWebRequest 对象,我们就可以使用它的 GetResponse() 方法返回一个 WebResponse 对象,然后将其转换为一个 HttpWebResponse 对象并将其分配给响应变量。
现在,可以使用响应对象的GetResponseStream()方法获取响应的文本流,最后使用Stream对象的Read()方法将返回的响应信息放入我们最初创建的字节数组buf中。Read()有3个参数,分别是:要放置的字节数组,字节数组的起始位置,字节数组的长度。
最后,将字节转换为字符串。注意:这里使用的是默认编码,它使用默认的编码方式,所以我们不再需要在字符编码之间进行转换。您还可以使用 WebRequest 和 WebResponse 来实现上述功能。代码如下:
WebRequest 请求 = WebRequest.Create(textBox1.Text);
WebResponse 响应 =request.GetResponse();
输入另一个网址,看看是不是很方便!
本文来自:象屿阁-IT天堂(),转载请保留此信息!