2013-01-23 36 views
1

我想用我的程序(asp.net/C#)輸入到另一個站點。如何以編程方式點擊另一個網站上的按鈕?

  1. 如何抓取網站並找到用戶名爲&的密碼文本框並填充所需的數據。
  2. 然後我可以如何按/激發登錄按鈕?

注意:我在HtmlAgilityPack之前抓取網站..有沒有辦法使用這個DLL或任何其他的DLL?

例如 用戶名是:用戶 密碼:密碼 和登錄按鈕的id是:按 我怎麼能做到這一點?

+3

您只需發送專門爲其登錄頁面設計的發佈請求。這就是通常所說的「按鈕點擊」。 –

+0

我不能underestand ...你能告訴我示例代碼嗎? – AminAmiriDarban

+0

示例:http://stackoverflow.com/questions/4015324/http-request-with-post – Stephen

回答

3

你不想那樣工作。您需要模擬一旦該表單通過Post請求提交給服務器並傳遞值後網站將執行的操作。您可以評估該網站確實通過使用Fiddler2和執行表單提交normall什麼,y,則sumulate如下:

HttpWebRequest request; 
     HttpWebResponse response; 
     var responseData = ""; 
     var strUrl = "https://auctions.godaddy.com/trpSearchResults.aspx"; 

     var postData = string.Format("action=review_selected_add&items={0}_B_{1}_1|&rnd={2}&JlPYXTX=347bde7", auctionRef, bid, 
      randomDouble(0, 1).ToString("0.00000000000000000")); 
     request = (HttpWebRequest)WebRequest.Create(strUrl); 
     request.Method = "POST"; 
     request.ContentType = "application/x-www-form-urlencoded"; 
     request.ContentLength = postData.Length; 
     request.Accept = "text/html, application/xhtml+xml, */*"; 
     request.Accept = "image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/msword, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/x-silverlight, application/x-silverlight-2-b2, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*"; 
     request.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11"; 
     request.Headers.Add("Accept-Encoding", "deflate"); 
     request.Referer = "auctions.godaddy.com"; 
     request.Headers["my-header"] = "the-value"; 
     request.KeepAlive = true; 
     request.CookieContainer = cookies; 
     request.Timeout = Timeout.Infinite; 

     var stOut = new StreamWriter(request.GetRequestStream()); 
     stOut.Write(postData); 
     stOut.Flush(); 
     stOut.Close(); 
     stOut = null; 

     response = (HttpWebResponse)request.GetResponse(); 
     response.Cookies = request.CookieContainer.GetCookies(request.RequestUri); 
     var encoding = new System.Text.UTF8Encoding(); 
     var responseReader = new StreamReader(response.GetResponseStream(), encoding, true); 

     encoding = new System.Text.UTF8Encoding(); 
     responseReader = new StreamReader(response.GetResponseStream(), encoding, true); 

     responseData = responseReader.ReadToEnd(); 
     response.Close(); 
     responseReader.Close(); 

只是讓使用上述張貼數據的類和返回的HTML。

相關問題