1 // Cookies集合保存 2 public CookieCollection CCol = null ; 3 4 // 设置公司代理 5 public WebProxy GetWP() 6 { 7 WebProxy _WP = new WebProxy("h00proxy", 80); 8 _WP.BypassProxyOnLocal = true; 9 NetworkCredential _CD = new NetworkCredential("davi xiong", "asdfad", "bqc"); 10 _WP.Credentials = _CD; 11 return _WP; 12 } 13 14 private void Login( string strId, string strPassword) 15 { 16 17 ASCIIEncoding encodingA = new ASCIIEncoding(); 18 19 CookieContainer myCookieContainer = new CookieContainer(); 20 21 progressBar1.Value = 0; // Process 22 //=======GET================================================================================ 23 HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://s1.travian.china.com/login.php"); 24 myRequest.Proxy = GetWP(); 25 26 myRequest.CookieContainer = myCookieContainer; 27 28 progressBar1.Value = 10; // Process 29 HttpWebResponse myResponseA = (HttpWebResponse)myRequest.GetResponse(); 30 StreamReader readerA = new StreamReader(myResponseA.GetResponseStream(), Encoding.Default); 31 string Getcontent = readerA.ReadToEnd(); 32 33 progressBar1.Value = 20; // Process 34 Regex Reg = new Regex("<input type=\"hidden\" name=\"login\" value=\"(.*)\">"); 35 string login = ""; 36 if (Reg.IsMatch(Getcontent)) 37 { 38 Match Mc = Reg.Matches(Getcontent)[0]; 39 login = Mc.Groups[1].Value; 40 } 41 progressBar1.Value = 30; // Process 42 43 Reg = new Regex("<input class=\"fm fm110\" type=\"text\" name=\"(.*)\" value="); 44 string name = ""; 45 if (Reg.IsMatch(Getcontent)) 46 { 47 Match Mc = Reg.Matches(Getcontent)[0]; 48 name = Mc.Groups[1].Value; 49 } 50 51 progressBar1.Value = 40; // Process 52 Reg = new Regex("<input class=\"fm fm110\" type=\"password\" name=\"(.*)\" value="); 53 string pass = ""; 54 if (Reg.IsMatch(Getcontent)) 55 { 56 Match Mc = Reg.Matches(Getcontent)[0]; 57 pass = Mc.Groups[1].Value; 58 } 59 60 progressBar1.Value = 50; // Process 61 Reg = new Regex("<p align=\"center\"><input type=\"hidden\" name=\"(.*)\" value=\"(.*)\">"); 62 string hid2name = ""; 63 string hid2value = ""; 64 if (Reg.IsMatch(Getcontent)) 65 { 66 Match Mc = Reg.Matches(Getcontent)[0]; 67 hid2name = Mc.Groups[1].Value; 68 hid2value = Mc.Groups[2].Value; 69 } 70 71 //=======DATA========================================================== 72 progressBar1.Value = 60; // Process 73 ASCIIEncoding encoding = new ASCIIEncoding(); 74 string postData = name + "=" + strId; 75 postData += "&" + pass + "=" + strPassword; 76 postData += "&login=" + login; 77 postData += "&autologin=ja&" + hid2name + "=" + hid2value + "&w=1024:768"; 78 79 byte[] data = encoding.GetBytes(postData); 80 81 //=======POST================================================================================ 82 progressBar1.Value = 70; // Process 83 myRequest = (HttpWebRequest)WebRequest.Create("http://s1.travian.china.com/dorf1.php"); 84 myRequest.Proxy = GetWP(); 85 86 myRequest.Method = "POST"; 87 myRequest.ContentType = "application/x-www-form-urlencoded"; 88 myRequest.ContentLength = data.Length; 89 myRequest.CookieContainer = myCookieContainer; 90 Stream newStream = myRequest.GetRequestStream(); 91 newStream.Write(data, 0, data.Length); 92 newStream.Close(); 93 94 progressBar1.Value = 80; // Process 95 HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse(); 96 CCol = myCookieContainer.GetCookies(myRequest.RequestUri); 97 progressBar1.Value = 90; // Process 98 StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default); 99 string content = reader.ReadToEnd();100101 progressBar1.Value = 100; // Process102 progressBar1.Value = 0; // Process103 } 104 105 private void BtnLogin_Click( object sender, EventArgs e) 106 { 107 Login("davi97", "sffg");108 } 109 110 // 获取登录后才能查看的网页数据 111 private string GetPageData( string URL) 112 {113 HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(URL);114 myRequest.Proxy = GetWP();115116 myRequest.CookieContainer = new CookieContainer();117 myRequest.CookieContainer.Add(new Uri(URL), CCol);118119 HttpWebResponse myResponseA = (HttpWebResponse)myRequest.GetResponse();120 StreamReader readerA = new StreamReader(myResponseA.GetResponseStream(), Encoding.Default);121 return readerA.ReadToEnd();122 } 123 124 private void BtnSearch_Click( object sender, EventArgs e) 125 {126 string URL = "http://s1.travian.china.com/karte.php";127 string ReqContent = GetPageData(URL);128129 //TODO : 自动搜索地图上的人员信息130 131 } 132 133
转载于:https://www.cnblogs.com/yidanda/archive/2009/07/22/1528530.html
相关资源:各显卡算力对照表!