2011-01-20 59 views
0

我需要从网站“hh.ua”下载页面源代码,但首先我必须登录。我尝试了许多不同的方法,但记录失败。该页面的动作来源是“http://hh.ua/logon.do”,我试图监视为记录发送的查询,它是 - http://hh.ua/logon.do?username=111&password=333&action=%D0%92%D0%BE%D0%B9%D1%82%D0%B8。请帮助!)如何从代码登录

这里是代码

 string formUrl = "http://hh.ua/logon.do"; 
     string formParams = string.Format("username={0}&password={1}&action=%D0%92%D0%BE%D0%B9%D1%82%D0%B8", "[email protected]", "80903798516"); 
     string cookieHeader; 
     WebRequest req = WebRequest.Create(formUrl); 
     req.ContentType = "application/x-www-form-urlencoded"; 
     req.Method = "POST"; 
     byte[] bytes = Encoding.ASCII.GetBytes(formParams); 
     req.ContentLength = bytes.Length; 
     using (Stream os = req.GetRequestStream()) 
     { 
      os.Write(bytes, 0, bytes.Length); 
     } 
     WebResponse resp = req.GetResponse(); 

     cookieHeader = resp.Headers["Set-cookie"]; 
     return cookieHeader; 

     string pageSource; 
     string getUrl = "http://hh.ua/resume/ae23733eff00c000df0039ed1f476831706856"; 
     WebRequest getRequest = WebRequest.Create(getUrl); 
     getRequest.Headers.Add("Cookie", cookieHeader); 
     WebResponse getResponse = getRequest.GetResponse(); 
     using (StreamReader sr = new StreamReader(getResponse.GetResponseStream())) 
     { 
      pageSource = sr.ReadToEnd(); 
     } 

我知道,因为下载页面登录页面日志的失败。

+0

为什么你需要这样做的代码?你在做什么自动化? – MikeWyatt

+0

您需要为您的问题添加更多详细信息,例如您如何知道登录失败?你回复什么信息,或者当你尝试按照你描述的方式登录时会发生什么?另外,发布一些代码。我们无法猜测发生了什么。 –

+0

我需要从该网站的页面找到并剪切一些信息。 – lesia

回答

0

对于那些涉及大量网络来回的项目,我发现WatiN非常有用。虽然WatiN可能起源于测试驱动的世界,但它需要引导网络浏览器(现在支持Chrome和Firefox)的功能相当出色。