C# 如何写简单爬虫?
发布网友
发布时间:2022-04-28 21:38
我来回答
共2个回答
热心网友
时间:2022-06-23 07:39
说一下简单的原理:
首先模拟浏览获取网页。
其次分析网页的内容。
最后根据自己的需要把数据储存在数据库中。(超级简单吧)
备注一句:如果是分布式爬虫的话,我考虑考虑哈,毕竟我还是很菜的哈。
在我使用的HTTP请求不带COOKIE。
带Cookie的代码
using(Stream writer = Request.GetRequestStream(){
byte[] data=Encoding.GetEncoding("UTF-8").GetBytes("cookie");
request.ContentLength = data.Length;
writer.Write(data,0,data.Length);}
HTTP请求携带的POST数据
using (StreamWriter streamWriter = new StreamWriter(httpWebRequest.GetRequestStream())){
streamWriter.Write(postString);
streamWriter.Flush();
streamWriter.Close();}
下面代码请求HTTP。
HttpWebRequest Request = (HttpWebRequest)WebRequest.Create("地址");
Request.Timeout = 20 * 1000;//请求超时。
Request.AllowAutoRedirect = true; //网页自动跳转。
Request.UserAgent = "Mozilla/5.0 (compatible; Googlebot/2.1; +
Request.Method = "GET"; //获取数据的方法。
GET//Request.Method = "POST";//POST
//Request.ContentType = "application/json";上传的格式JSON
Request.KeepAlive = true; //保持
HttpWebResponse Response = (HttpWebResponse)Request.GetResponse();using (StreamReader sReader = new StreamReader(Response.GetResponseStream(), Encoding.UTF8))
{
String Htmlstring = sReader.ReadToEnd();
}
热心网友
时间:2022-06-23 07:40
爬虫只需要简单的gethttp就好了,post和get请求都可以。主要要考虑服务器对同一个ip的*访问次数,可以考虑用http代理和socks4、5代理进行请求。至于post和get的请求链接,参数和cookie你都需要自己通过网页抓包获得。