private async void bt_spider_Click(object sender, EventArgs e) { if (string.IsNullOrWhiteSpace(tb_question.Text)) { lb_msg.Text = "请输入问题ID"; return; } bt_spider.Enabled = false; _question = tb_question.Text.Trim(); _url = Path.Combine(StaticResources.QUESTION_URL, tb_question.Text); if (File.Exists(StaticResources.COOKIE_FILE_PATH)) { var file01 = File.ReadAllBytes(StaticResources.COOKIE_FILE_PATH); _cookieContainers = FormatterComm.Deserialize <CookieContainer>(Encoding.UTF8.GetString(file01)); _httpComm.Cookies = _cookieContainers; lb_msg.Text = "已存在Coolie"; ControlBtDown(true); bt_spider.Enabled = true; return; } else { await Task.Run(() => { try { if (_driver != null) { _driver.Quit(); _driver.Dispose(); _driver = null; } _driver = PhantomJSDriverComm.Driver; _driver.Navigate().GoToUrl(StaticResources.LOG_IN_URL); Thread.Sleep(2000); var signinSwitchPassword = _driver.FindElement(By.XPath("//span[@class='signin-switch-password']")); signinSwitchPassword.Click(); Screenshot screen; var account = _driver.FindElement(By.XPath("//input[@name='account']")); //var accountHtml = account.GetAttribute("outerHTML"); account.SendKeys(tb_userName.Text.Trim()); var password = _driver.FindElement(By.XPath("//input[@name='password']")); //var passwordHtml = password.GetAttribute("outerHTML"); password.SendKeys(tb_password.Text.Trim()); Thread.Sleep(2000); screen = _driver.GetScreenshot(); // screen.SaveAsFile(StaticResources.TEMP_IMG_PATH); var imgBts = screen.AsByteArray; Invoke(new MethodInvoker(delegate() { using (var ms = new MemoryStream()) { ms.Write(imgBts, 0, imgBts.Length); var bitMap = new Bitmap(ms); pb_img.Width = bitMap.Width; pb_img.Height = bitMap.Height; pb_img.Image = bitMap; } // ContrlEnable(true); ControlBtDown(true); bt_spider.Enabled = true; })); } catch (Exception ex) { Invoke(new MethodInvoker(delegate() { bt_spider.Enabled = true; rtb_errorMsg.Text = ex.Message + "\r\n" + rtb_errorMsg.Text; })); } }); } }
private void bt_saveCookie_Click(object sender, EventArgs e) { if (_driver == null) { lb_msg.Text = "不存在cookie"; return; } try { CookieContainer cookieContainer = new CookieContainer(); //获取cookies var cookies = _driver.Manage().Cookies.AllCookies; for (int i = 0; i < cookies.Count; i++) { var tempCookie = new System.Net.Cookie() { Domain = cookies[i].Domain, Expires = cookies[i].Expiry ?? DateTime.MaxValue, HttpOnly = cookies[i].IsHttpOnly, Name = cookies[i].Name, Path = cookies[i].Path, Secure = cookies[i].Secure, Value = cookies[i].Value }; _cookieContainers.Add(tempCookie); cookieContainer.Add(tempCookie); } FileComm.WriteFile(StaticResources.COOKIE_FILE_PATH, Encoding.UTF8.GetBytes(FormatterComm.Serialize(cookieContainer))); lb_msg.Text = "保存成功"; } catch (Exception ex) { rtb_errorMsg.Text = ex.Message + "\r\n" + rtb_errorMsg.Text; } }