Commit ac3c4dff authored by liudong1993's avatar liudong1993
parents 77b9ace2 0b71f604
...@@ -10,24 +10,30 @@ namespace EduSpider ...@@ -10,24 +10,30 @@ namespace EduSpider
{ {
static void Main(string[] args) static void Main(string[] args)
{ {
var stopTime = 1000 * 60 * 30; var stopTime = 1000 * 60 *2;
long times = 1;
//30分钟执行一次 //30分钟执行一次
while (true) while (true)
{ {
//ClassIn数据 var date = DateTime.Now;
new ClassInFlow().StartAsync(); if (times == 1)
Thread.Sleep(stopTime); {
Console.WriteLine(string.Format("{0} 执行方法.", date.ToString("yyyy-MM-dd HH:mm")));
//ClassIn数据
new ClassInFlow().StartAsync();
Thread.Sleep(stopTime);
}
if (date.Minute == 0)
{
Console.WriteLine(string.Format("{0} 执行方法.", date.ToString("yyyy-MM-dd HH:mm")));
//ClassIn数据
new ClassInFlow().StartAsync();
Thread.Sleep(stopTime);
}
times++;
} }
//校管家数据
//SchoolTaskHelper.RunTask();
Console.ReadLine(); Console.ReadLine();
Environment.Exit(0); Environment.Exit(0);
//ServiceBase[] services = new ServiceBase[] { new MindService() };
//ServiceBase.Run(services);
} }
} }
} }
\ No newline at end of file
...@@ -14,7 +14,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -14,7 +14,7 @@ namespace TicketSpider.Spiders.ClassInRule
public class ClassInAccountManager public class ClassInAccountManager
{ {
private static readonly object lockerSafe= new(); private static readonly object lockerSafe = new();
private static string _loginCookies = "";//"locationArgumentLang=zh-CN; sensorsdata2015jssdkcross={\"distinct_id\":\"12780052\",\"first_id\":\"180e074a47f92f-06489d0bb8915b-6b3e555b-1327104-180e074a4805d2\",\"props\":{\"$latest_traffic_source_type\":\"直接流量\",\"$latest_search_keyword\":\"未取到值_直接打开\",\"$latest_referrer\":\"\"},\"$device_id\":\"180e074a47f92f-06489d0bb8915b-6b3e555b-1327104-180e074a4805d2\"}; _eeos_uid=12780052; _eeos_useraccount=18140082327; _eeos_userlogo=/upload/images/20200126/709df9532bee722f2268_70.jpg; _eeos_domain=.eeo.cn; _eeos_sid=12780052; _eeos_nsid=kspGu2gfMu+U2EFgLpSGyg==; __tk_id=5792ca4f7a6655c40c4431fbdb729da4; PHPSESSID=l5aanmebp5lvpcbg630ccfha37; _eeos_traffic=EqlIOFq4S2hz5FTTtHzNUViBYcWCixrJYMCF6Y5yJuD8eq8ZwPvVSHMvUkLFA5lzNoaTrDBpGhEY7ykZ9lwMAsNJoNiDt2xKQBr9csRmiBE="; private static string _loginCookies = "";//"locationArgumentLang=zh-CN; sensorsdata2015jssdkcross={\"distinct_id\":\"12780052\",\"first_id\":\"180e074a47f92f-06489d0bb8915b-6b3e555b-1327104-180e074a4805d2\",\"props\":{\"$latest_traffic_source_type\":\"直接流量\",\"$latest_search_keyword\":\"未取到值_直接打开\",\"$latest_referrer\":\"\"},\"$device_id\":\"180e074a47f92f-06489d0bb8915b-6b3e555b-1327104-180e074a4805d2\"}; _eeos_uid=12780052; _eeos_useraccount=18140082327; _eeos_userlogo=/upload/images/20200126/709df9532bee722f2268_70.jpg; _eeos_domain=.eeo.cn; _eeos_sid=12780052; _eeos_nsid=kspGu2gfMu+U2EFgLpSGyg==; __tk_id=5792ca4f7a6655c40c4431fbdb729da4; PHPSESSID=l5aanmebp5lvpcbg630ccfha37; _eeos_traffic=EqlIOFq4S2hz5FTTtHzNUViBYcWCixrJYMCF6Y5yJuD8eq8ZwPvVSHMvUkLFA5lzNoaTrDBpGhEY7ykZ9lwMAsNJoNiDt2xKQBr9csRmiBE=";
...@@ -22,18 +22,23 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -22,18 +22,23 @@ namespace TicketSpider.Spiders.ClassInRule
public static string _userId = String.Empty; public static string _userId = String.Empty;
public static void ClearCookie()
{
_loginCookies = "";
}
public static string GetInstance() public static string GetInstance()
{ {
if (string.IsNullOrEmpty(_loginCookies)) if (string.IsNullOrEmpty(_loginCookies))
{ {
lock (lockerSafe) lock (lockerSafe)
{ {
if (string.IsNullOrEmpty(_loginCookies)) if (string.IsNullOrEmpty(_loginCookies))
{ {
_loginCookies = string.Empty; _loginCookies = string.Empty;
var cnt = 0; var cnt = 0;
while (cnt<4) while (cnt < 4)
{ {
cnt++; cnt++;
var result = RunAsync(); var result = RunAsync();
...@@ -43,7 +48,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -43,7 +48,7 @@ namespace TicketSpider.Spiders.ClassInRule
Task.Run(() => HeartLine()); Task.Run(() => HeartLine());
break; break;
} }
else else
{ {
Console.WriteLine("开始重新尝试登录"); Console.WriteLine("开始重新尝试登录");
VTX.FW.Helper.LogHelper.WriteInfo("GetInstance", "开始重新尝试登录"); VTX.FW.Helper.LogHelper.WriteInfo("GetInstance", "开始重新尝试登录");
...@@ -51,13 +56,11 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -51,13 +56,11 @@ namespace TicketSpider.Spiders.ClassInRule
} }
} }
} }
} }
} }
return _loginCookies; return _loginCookies;
} }
public static bool RunAsync() public static bool RunAsync()
{ {
var flag = false; var flag = false;
...@@ -76,15 +79,11 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -76,15 +79,11 @@ namespace TicketSpider.Spiders.ClassInRule
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", "开始登录"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", "开始登录");
try try
{ {
driver.Navigate().GoToUrl($"https://www.eeo.cn/cn/login"); driver.Navigate().GoToUrl($"https://www.eeo.cn/cn/login");
driver.Manage().Timeouts().PageLoad=TimeSpan.FromSeconds(15); driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(15);
inputEle = driver.FindElement(By.Name("phoneNum")); inputEle = driver.FindElement(By.Name("phoneNum"));
pwdEle = driver.FindElement(By.Name("loginPwd")); pwdEle = driver.FindElement(By.Name("loginPwd"));
if (inputEle != null && pwdEle != null)
if (inputEle != null && pwdEle!=null)
{ {
inputEle.SendKeys("18140082327"); inputEle.SendKeys("18140082327");
pwdEle.SendKeys("ls123456"); pwdEle.SendKeys("ls123456");
...@@ -116,7 +115,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -116,7 +115,7 @@ namespace TicketSpider.Spiders.ClassInRule
{ {
silderBoxEle = driver.FindElement(By.Id("reload")); silderBoxEle = driver.FindElement(By.Id("reload"));
} }
catch (Exception){} catch (Exception) { }
if (silderBoxEle != null) if (silderBoxEle != null)
{ {
silderBoxEle.Click(); silderBoxEle.Click();
...@@ -141,7 +140,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -141,7 +140,7 @@ namespace TicketSpider.Spiders.ClassInRule
break; break;
} }
} }
else else
{ {
Console.WriteLine("未知异常,程序退出"); Console.WriteLine("未知异常,程序退出");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"未知异常,程序退出"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"未知异常,程序退出");
...@@ -159,12 +158,11 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -159,12 +158,11 @@ namespace TicketSpider.Spiders.ClassInRule
Console.WriteLine("完成登录..."); Console.WriteLine("完成登录...");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"完成登录..."); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"完成登录...");
return flag; return flag;
} }
public static Task BeginSliderLoginHandler(ref IWebDriver driver) public static Task BeginSliderLoginHandler(ref IWebDriver driver)
{ {
//等待滑块加载 //等待滑块加载
Thread.Sleep(5000); Thread.Sleep(5000);
driver.SwitchTo().Frame(driver.FindElement(By.Id("tcaptcha_iframe"))); driver.SwitchTo().Frame(driver.FindElement(By.Id("tcaptcha_iframe")));
...@@ -182,9 +180,9 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -182,9 +180,9 @@ namespace TicketSpider.Spiders.ClassInRule
var fileBlockPath = $"{dirpath}\\{DateTime.Now.Ticks + 1}.png"; var fileBlockPath = $"{dirpath}\\{DateTime.Now.Ticks + 1}.png";
bgPng.SaveAsFile(fileBgPath, ScreenshotImageFormat.Png); bgPng.SaveAsFile(fileBgPath, ScreenshotImageFormat.Png);
blockPng.SaveAsFile(fileBlockPath, ScreenshotImageFormat.Png); blockPng.SaveAsFile(fileBlockPath, ScreenshotImageFormat.Png);
var bgX = GetBoundary(fileBgPath,fileBlockPath); var bgX = GetBoundary(fileBgPath, fileBlockPath);
Console.WriteLine($"读取背景缺口边界X坐标: {bgX}"); Console.WriteLine($"读取背景缺口边界X坐标: {bgX}");
VTX.FW.Helper.LogHelper.WriteInfo("BeginSliderLoginHandler", $"读取背景缺口边界X坐标: {bgX}"); VTX.FW.Helper.LogHelper.WriteInfo("BeginSliderLoginHandler", $"读取背景缺口边界X坐标: {bgX}");
...@@ -210,19 +208,19 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -210,19 +208,19 @@ namespace TicketSpider.Spiders.ClassInRule
action.Build().Perform(); action.Build().Perform();
driver.SwitchTo().DefaultContent(); driver.SwitchTo().DefaultContent();
} }
File.Delete(fileBgPath); File.Delete(fileBgPath);
File.Delete(fileBlockPath); File.Delete(fileBlockPath);
return Task.CompletedTask; return Task.CompletedTask;
} }
private static int GetBoundary(string bg, string tp) private static int GetBoundary(string bg, string tp)
{ {
var bgImg=Cv2.ImRead(bg); var bgImg = Cv2.ImRead(bg);
var tpImg=Cv2.ImRead(tp); var tpImg = Cv2.ImRead(tp);
var bgEdge = new Mat(); var bgEdge = new Mat();
Cv2.Canny(bgImg, bgEdge, 100, 200); Cv2.Canny(bgImg, bgEdge, 100, 200);
...@@ -236,16 +234,16 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -236,16 +234,16 @@ namespace TicketSpider.Spiders.ClassInRule
Cv2.CvtColor(tpEdge, tpPic, ColorConversionCodes.GRAY2RGB); Cv2.CvtColor(tpEdge, tpPic, ColorConversionCodes.GRAY2RGB);
var res = new Mat(); var res = new Mat();
Cv2.MatchTemplate(bgPic,tpPic,res, TemplateMatchModes.CCoeffNormed); Cv2.MatchTemplate(bgPic, tpPic, res, TemplateMatchModes.CCoeffNormed);
OpenCvSharp.Point minLoc = new OpenCvSharp.Point(), maxLoc = new OpenCvSharp.Point(); OpenCvSharp.Point minLoc = new OpenCvSharp.Point(), maxLoc = new OpenCvSharp.Point();
Cv2.MinMaxLoc(res,out double minVal,out double maxVal,out minLoc,out maxLoc); Cv2.MinMaxLoc(res, out double minVal, out double maxVal, out minLoc, out maxLoc);
var bt = new OpenCvSharp.Point(maxLoc.X+tpPic.Width,maxLoc.Y+tpPic.Height); var bt = new OpenCvSharp.Point(maxLoc.X + tpPic.Width, maxLoc.Y + tpPic.Height);
Cv2.Rectangle(bgImg, maxLoc, bt, Scalar.Red, 2); Cv2.Rectangle(bgImg, maxLoc, bt, Scalar.Red, 2);
var dirpath = $"{Environment.CurrentDirectory}\\geetest"; var dirpath = $"{Environment.CurrentDirectory}\\geetest";
Cv2.ImWrite($"{dirpath}\\{DateTime.Now.Ticks}.png",bgImg); Cv2.ImWrite($"{dirpath}\\{DateTime.Now.Ticks}.png", bgImg);
return maxLoc.X-20; return maxLoc.X - 20;
} }
private static void HeartLine() private static void HeartLine()
...@@ -268,7 +266,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -268,7 +266,7 @@ namespace TicketSpider.Spiders.ClassInRule
} }
public static void StopHeartLine() public static void StopHeartLine()
{ {
_openHeartTimer = false; _openHeartTimer = false;
} }
......
...@@ -16,6 +16,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -16,6 +16,7 @@ namespace TicketSpider.Spiders.ClassInRule
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始模拟登录信息......."); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始模拟登录信息.......");
string loginCookies; string loginCookies;
//自定获取Cookie //自定获取Cookie
ClassInAccountManager.ClearCookie();
loginCookies = ClassInAccountManager.GetInstance(); loginCookies = ClassInAccountManager.GetInstance();
//loginCookies = "_eeos_uid=12780052; _eeos_useraccount=18140082327; _eeos_userlogo=%2Fupload%2Fimages%2F20200126%2F709df9532bee722f2268_70.jpg; _eeos_domain=.eeo.cn; _eeos_remember=1; _eeos_sid=12780052; _eeos_nsid=kspGu2gfMu%2BU2EFgLpSGyg%3D%3D; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2212780052%22%2C%22first_id%22%3A%22180f59907abbed-081e4952c5b26f-12333272-2073600-180f59907acbc8%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%22180f59907abbed-081e4952c5b26f-12333272-2073600-180f59907acbc8%22%7D; _eeos_traffic=EqlIOFq4S2hz5FTTtHzNUViBYcWCixrJYMCF6Y5yJuD8eq8ZwPvVSHMvUkLFA5lzNoaTrDBpGhFOuRmo3R6CQ5GeSsJx1IEakyt2K%2B3ifco%3D; PHPSESSID=3etqs18ka2s425omq6uqsus8s2; __tk_id=7a20b97a04709afc3137ec211e756d5f"; //loginCookies = "_eeos_uid=12780052; _eeos_useraccount=18140082327; _eeos_userlogo=%2Fupload%2Fimages%2F20200126%2F709df9532bee722f2268_70.jpg; _eeos_domain=.eeo.cn; _eeos_remember=1; _eeos_sid=12780052; _eeos_nsid=kspGu2gfMu%2BU2EFgLpSGyg%3D%3D; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%2212780052%22%2C%22first_id%22%3A%22180f59907abbed-081e4952c5b26f-12333272-2073600-180f59907acbc8%22%2C%22props%22%3A%7B%22%24latest_traffic_source_type%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24latest_search_keyword%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24latest_referrer%22%3A%22%22%7D%2C%22%24device_id%22%3A%22180f59907abbed-081e4952c5b26f-12333272-2073600-180f59907acbc8%22%7D; _eeos_traffic=EqlIOFq4S2hz5FTTtHzNUViBYcWCixrJYMCF6Y5yJuD8eq8ZwPvVSHMvUkLFA5lzNoaTrDBpGhFOuRmo3R6CQ5GeSsJx1IEakyt2K%2B3ifco%3D; PHPSESSID=3etqs18ka2s425omq6uqsus8s2; __tk_id=7a20b97a04709afc3137ec211e756d5f";
......
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