欢迎来到天天文库
浏览记录
ID:8254806
大小:38.50 KB
页数:5页
时间:2018-03-13
《如何抓取网页数据》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、网页源码中规则数据的获取过程:第一步:获取网页源码。第二步:使用正则表达式匹配抽取所需要的数据。第三步:将结果进行保存。这里只介绍第一步。System.Net.HttpWebRequest;System.Net.HttpWebResponse;System.IO.Stream;System.IO.StreamReader;System.IO.FileStream;通过C#程序来获取访问页面的内容(网页源代码)并实现将内容保存到本机的文件中。方法一是通过System.Net的两个关键的类System.Net.HttpWebRequest;System.Net.Http
2、WebResponse;来实现的。具体代码如下方案0:网上的代码,看明白这个就可以用方案一和方案二了HttpWebRequesthttpReq;HttpWebResponsehttpResp;stringstrBuff="";char[]cbuffer=newchar[256];intbyteRead=0;stringfilename=@"c:log.txt";///定义写入流操作publicvoidWriteStream(){UrihttpURL=newUri(txtURL.Text);///HttpWebRequest类继承于WebRequest,并没有自己的
3、构造函数,需通过WebRequest的Creat方法建立,并进行强制的类型转换httpReq=(HttpWebRequest)WebRequest.Create(httpURL);///通过HttpWebRequest的GetResponse()方法建立HttpWebResponse,强制类型转换httpResp=(HttpWebResponse)httpReq.GetResponse();///GetResponseStream()方法获取HTTP响应的数据流,并尝试取得URL中所指定的网页内容///若成功取得网页的内容,则以System.IO.Stream形式返
4、回,若失败则产生ProtoclViolationException错误。在此正确的做法应将以下的代码放到一个try块中处理。这里简单处理StreamrespStream=httpResp.GetResponseStream();///返回的内容是Stream形式的,所以可以利用StreamReader类获取GetResponseStream的内容,并以StreamReader类的Read方法依次读取网页源程序代码每一行的内容,直至行尾(读取的编码格式:UTF8)StreamReaderrespStreamReader=newStreamReader(respStre
5、am,Encoding.UTF8);byteRead=respStreamReader.Read(cbuffer,0,256);while(byteRead!=0){stringstrResp=newstring(cbuffer,0,byteRead);strBuff=strBuff+strResp;byteRead=respStreamReader.Read(cbuffer,0,256);}respStream.Close();txtHTML.Text=strBuff;}///定义写入文件操作publicvoidWriteFile(){///要将结果存储至文件中,
6、可利用FileStream类建立文件数据流,并以Write方法将HTML内容写入到文件FileStreamfileStream=newFileStream(filename,FileMode.OpenOrCreate,FileAccess.Write);byte[]byteSave=Encoding.UTF8.GetBytes(txtHTML.Text.ToString());///保存为txt文件时编码方式为UTF8fileStream.Write(byteSave,0,byteSave.Length);fileStream.Close();}privatevoi
7、dbtnwrite_Click(objectsender,EventArgse){WriteStream();WriteFile();}方案一、如果不需要POST参数可用下边的方案由于是在WinForm下写的代码,因此会有usingSystem.Windows.Forms;命名空间,错误提示框需要这个命名空间。usingSystem;usingSystem.Collections.Generic;usingSystem.Collections;usingSystem.Text;usingSystem.Data;//这个可以不要usingSystem.Net;us
此文档下载收益归作者所有