C# .net 抓取网页内容
ASP.NET 中抓取网页内容是非常方便的,而其中更是解决了 ASP 中困扰我们的编码问题。
1、抓取一般内容
需要三个类:WebRequest、WebResponse、StreamReader
所需命名空间:System.Net、System.IO
核心代码:
WebRequest 类的 Create 为静态方法,参数为要抓取的网页的网址;
Encoding 指定编码,Encoding 中有属性 ASCII、UTF32、UTF8 等全球通用的编码,但没有 gb2312 这个编码属性,所以我们使用 GetEncoding 获得 gb2312 编码。
[c-sharp] view plaincopy
private string GetGeneralContent(string strUrl)
{
string strMsg = string.Empty;
try
{
WebRequest request = WebRequest.Create(strUrl);
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));
strMsg = reader.ReadToEnd();
reader.Close();
reader.Dispose();
response.Close();
}
catch
{ }
return strMsg;
}
2、抓取图片或其它二进制文件(如文件)
需要四个类:WebRequest、WebResponse、Stream、FileStream
所需命名空间:System.Net、System.IO
核心代码:用Stream读取
[c-sharp] view plaincopy
private string GetFileContent(string strUrl)
{
string strMsg = string.Empty;
try
{
WebRequest request = WebRequest.Create(strUrl);
WebResponse response = request.GetResponse();
Stream reader = response.GetResponseStream();
//可根据实际保存为具体文件
FileStream writer = new FileStream("D://logo.gif", FileMode.OpenOrCreate, FileAccess.Write);
byte[] buff = new byte[512];
int c = 0; //实际读取的字节数
while ((c=reader.Read(buff, 0, buff.Length)) > 0)
{
writer.Write(buff, 0, c);
}
writer.Close();
writer.Dispose();
reader.Close();
reader.Dispose();
response.Close();
strMsg = "保存成功";
}
catch
{ }
return strMsg;
}
3、抓取网页内容 POST方式
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/68166.html