Commit 703a941d authored by 黄奎's avatar 黄奎

页面修改

parent eba90070
......@@ -54,60 +54,5 @@ namespace EduSpider
Console.ReadLine();
Environment.Exit(0);
}
#region 异常 退出chromedriver
[DllImport("user32.dll", EntryPoint = "FindWindow")]
private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int SW_HIDE = 0;
public const int SW_SHOW = 5;
[DllImport("user32.dll", EntryPoint = "ShowWindow")]
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
/// <summary>
/// 获取窗口句柄
/// </summary>
/// <returns></returns>
public IntPtr GetWindowHandle()
{
string name = (Environment.CurrentDirectory + "\\chromedriver.exe");
IntPtr hwd = FindWindow(null, name);
return hwd;
}
/// <summary>
/// 关闭chromedriver窗口
/// </summary>
public void CloseWindow()
{
try
{
IntPtr hwd = GetWindowHandle();
SendMessage(hwd, 0x10, 0, 0);
}
catch
{
}
}
/// <summary>
/// 退出chromedriver
/// </summary>
/// <param name="driver"></param>
public void CloseChromeDriver(IWebDriver driver)
{
try
{
driver.Quit();
driver.Dispose();
}
catch
{
}
CloseWindow();
}
#endregion 异常 退出chromedriver
}
}
\ No newline at end of file
......@@ -10,6 +10,7 @@ using System.Drawing;
using System.IO;
using System.Net;
using System.Net.Http;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
......@@ -72,7 +73,7 @@ namespace TicketSpider.Spiders.ClassInRule
IWebElement pwdEle;
var option = new FirefoxOptions();
option.AddArgument("--incognito");
string IsOpenChrome= VTX.FW.Helper.ConfigHelper.GetAppsettings("IsOpenChrome");
string IsOpenChrome = VTX.FW.Helper.ConfigHelper.GetAppsettings("IsOpenChrome");
if (IsOpenChrome == "1")
{
option.AddArgument("window-size=1920,1080");
......@@ -94,14 +95,12 @@ namespace TicketSpider.Spiders.ClassInRule
option.PageLoadStrategy = PageLoadStrategy.Eager;
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService(Environment.CurrentDirectory);
service.HideCommandPromptWindow = true;
IWebDriver driver = new FirefoxDriver(service,option);
using (IWebDriver driver = new FirefoxDriver(service, option))
{
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", "开始登录");
try
{
driver.Navigate().GoToUrl($"https://www.eeo.cn/cn/login");
ITimeouts timeouts = driver.Manage().Timeouts();
//设置查找元素最大超时时间为30秒
timeouts.ImplicitWait = new TimeSpan(0, 0, 30);
......@@ -126,18 +125,17 @@ namespace TicketSpider.Spiders.ClassInRule
{
inputEle.SendKeys("18140082327");
pwdEle.SendKeys("ls123456");
var loginCount = 0;
var buttonEle = driver.FindElement(By.CssSelector(".submit-btn"));
Thread.Sleep(1000);
//开始登录
buttonEle.Click();
//开始模拟登录
while (true)
for (var loginCount = 0; loginCount <= 4; loginCount++)
{
loginCount++;
InfoHelper.WriteLine($"正在进行第{loginCount}次模拟登录...");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在进行第{loginCount}次模拟登录...");
var login = FireFoxBeginSliderLoginHandler(ref driver);
var login = FireFoxBeginSliderLoginHandler(driver);
if (login.IsCompleted)
{
driver.SwitchTo().DefaultContent();
......@@ -172,6 +170,7 @@ namespace TicketSpider.Spiders.ClassInRule
}
catch (Exception ex)
{
CloseFireFoxDriver(driver);
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"获取cooki失败,{ex.Message}");
InfoHelper.WriteLine($"获取cooki失败,{ex.Message}");
}
......@@ -181,13 +180,69 @@ namespace TicketSpider.Spiders.ClassInRule
driver.Quit();
driver.Dispose();
}
}
InfoHelper.WriteLine("完成登录...");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"完成登录...");
return flag;
}
public static Task FireFoxBeginSliderLoginHandler(ref IWebDriver driver)
#region 异常 退出chromedriver
[DllImport("user32.dll", EntryPoint = "FindWindow")]
private extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", EntryPoint = "SendMessage")]
public static extern int SendMessage(IntPtr hWnd, int Msg, int wParam, int lParam);
public const int SW_HIDE = 0;
public const int SW_SHOW = 5;
[DllImport("user32.dll", EntryPoint = "ShowWindow")]
public static extern int ShowWindow(IntPtr hwnd, int nCmdShow);
/// <summary>
/// 获取窗口句柄
/// </summary>
/// <returns></returns>
public static IntPtr GetWindowHandle()
{
string name = (Environment.CurrentDirectory + "\\geckodriver.exe");
IntPtr hwd = FindWindow(null, name);
return hwd;
}
/// <summary>
/// 关闭chromedriver窗口
/// </summary>
public static void CloseWindow()
{
try
{
IntPtr hwd = GetWindowHandle();
SendMessage(hwd, 0x10, 0, 0);
}
catch
{
}
}
/// <summary>
/// 退出chromedriver
/// </summary>
/// <param name="driver"></param>
public static void CloseFireFoxDriver(IWebDriver driver)
{
try
{
driver.Quit();
driver.Dispose();
}
catch
{
}
CloseWindow();
}
#endregion 异常 退出chromedriver
public static Task FireFoxBeginSliderLoginHandler(IWebDriver driver)
{
//等待滑块加载
Thread.Sleep(5000);
......@@ -237,7 +292,7 @@ namespace TicketSpider.Spiders.ClassInRule
return Task.CompletedTask;
}
private static int FireFoxGetBoundary(string fileBgPath,string fileBlockPath)
private static int FireFoxGetBoundary(string fileBgPath, string fileBlockPath)
{
var dirpath = $"{Environment.CurrentDirectory}\\geetest";
var bgImg = Cv2.ImRead(fileBgPath);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment