http://bbs.hc360.com/forum.php,获取网站中response.Headers["location"],找到抓取页面 | 学步园...

private static string getPageContent(string tastKeyword)

{

string htmlcontent = "";

HttpWebRequest request = null;

HttpWebResponse response = null;

string gethost = string.Empty;

CookieContainer cc = new CookieContainer();

string Cookiesstr = string.Empty;

try

{

//第一次POST请求

string post = @"formhash=59f68caf&srchtxt={0}&searchsubmit=yes";//模拟请求数据

string postdata = string.Format(post, tastKeyword);

string LoginUrl = "http://bbs.hc360.com/search.php?mod=forum";

request = (HttpWebRequest)WebRequest.Create(LoginUrl);//实例化web访问类

request.Method = "POST";//数据提交方式为POST

//模拟头

request.ContentType = "application/x-www-form-urlencoded";

byte[] postdatabytes = Encoding.GetEncoding("gbk").GetBytes(postdata);

request.ContentLength = postdatabytes.Length;

request.Referer = "http://bbs.hc360.com/search.php?mod=forum";

request.AllowAutoRedirect = false;

request.CookieContainer = cc;

request.KeepAlive = true;

//提交请求

Stream stream;

stream = request.GetRequestStream();

stream.Write(postdatabytes, 0, postdatabytes.Length);

stream.Close();

//接收响应

response = (HttpWebResponse)request.GetResponse();

//保存返回cookie

response.Cookies = request.CookieContainer.GetCookies(request.RequestUri);

CookieCollection cook = response.Cookies;

string strcrook = request.CookieContainer.GetCookieHeader(request.RequestUri);

Cookiesstr = strcrook;

//取第一次GET跳转地址

//StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gb2312"));

//string content = sr.ReadToEnd();

response.Close();

}

catch (Exception)

{

//第一次POST出错;

}

try

{

string loction = response.Headers["location"];

gethost = "http://bbs.hc360.com/" + loction; //第一次GET地址

request = (HttpWebRequest)WebRequest.Create(gethost);

request.Method = "GET";

request.KeepAlive = true;

request.Headers.Add("Cookie:" + Cookiesstr);

request.CookieContainer = cc;

request.AllowAutoRedirect = true;

response = (HttpWebResponse)request.GetResponse();

//设置cookie

Cookiesstr = request.CookieContainer.GetCookieHeader(request.RequestUri);

//取再次跳转链接

StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("gbk"));

htmlcontent = sr.ReadToEnd();

request.Abort();

sr.Close();

response.Close();

}

catch (Exception)

{

//第二次POST出错

}

return htmlcontent;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值