我编写的东西可以从网站上收集一些信息。 我的问题是,我总是从网络服务器上解除我的会话过期。能帮我解决这个问题吗?
CookieContainer container = new CookieContainer();
HttpWebRequest request = (HttpWebRequest) WebRequest.Create("https://www.eurowings.com/skysales/Deeplink.aspx");
request.Method = "POST";
request.CookieContainer = container;
request.ContentType = "application/x-www-form-urlencoded";
string postData = "culture=de-DE&o=110&d=TXL&od=2016-11-23&adt=1&chd=0&inf=0&lng=de-DE&t=o";
byte[] bytes = Encoding.UTF8.GetBytes(postData);
request.ContentLength = bytes.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(bytes, 0, bytes.Length);
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
StreamReader reader = new StreamReader(stream);
var result = reader.ReadToEnd();
stream.Dispose();
reader.Dispose();
答案 0 :(得分:1)
所以你正在编写一个网络爬虫。
我注意到你根本没有发布会话ID,所以这就是它看起来过期的原因。
您应该对此网站进行两次调用: 1.第一次调用,它将启动一个新的会话,并以某种方式给你会话ID。 2.在寻找航班时,将会话ID附加到您的请求中。