Commit df9cefc4 authored by 黄奎's avatar 黄奎

1111

parent 595e2ef9
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" /> <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
<PackageReference Include="OpenCvSharp4.Windows" Version="4.5.5.20211231" /> <PackageReference Include="OpenCvSharp4.Windows" Version="4.5.5.20211231" />
<PackageReference Include="Selenium.WebDriver" Version="4.1.0" /> <PackageReference Include="Selenium.WebDriver" Version="4.1.0" />
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="100.0.4896.6000" /> <PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="102.0.5005.6102" />
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" /> <PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" /> <PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" /> <PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
......
using EduSpider.Spiders.SchoolHouseKeeper; using EduSpider.Spiders.SchoolHouseKeeper;
using EduSpider.Utility.Plugin;
using OpenQA.Selenium; using OpenQA.Selenium;
using System; using System;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
...@@ -20,14 +21,14 @@ namespace EduSpider ...@@ -20,14 +21,14 @@ namespace EduSpider
var date = DateTime.Now; var date = DateTime.Now;
if (times == 1) if (times == 1)
{ {
Console.WriteLine(string.Format("{0} 执行方法.", date.ToString("yyyy-MM-dd HH:mm"))); InfoHelper.WriteLine(string.Format("{0} 执行方法.", date.ToString("yyyy-MM-dd HH:mm")));
//ClassIn数据 //ClassIn数据
new ClassInFlow().StartAsync(); new ClassInFlow().StartAsync();
Thread.Sleep(stopTime); Thread.Sleep(stopTime);
} }
if (date.Minute == 0) if (date.Minute == 0)
{ {
Console.WriteLine(string.Format("{0} 执行方法.", date.ToString("yyyy-MM-dd HH:mm"))); InfoHelper.WriteLine(string.Format("{0} 执行方法.", date.ToString("yyyy-MM-dd HH:mm")));
//ClassIn数据 //ClassIn数据
new ClassInFlow().StartAsync(); new ClassInFlow().StartAsync();
Thread.Sleep(stopTime); Thread.Sleep(stopTime);
......
using OpenCvSharp; using EduSpider.Utility.Plugin;
using OpenCvSharp;
using OpenQA.Selenium; using OpenQA.Selenium;
using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Interactions; using OpenQA.Selenium.Interactions;
...@@ -50,7 +51,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -50,7 +51,7 @@ namespace TicketSpider.Spiders.ClassInRule
} }
else else
{ {
Console.WriteLine("开始重新尝试登录"); InfoHelper.WriteLine("开始重新尝试登录");
VTX.FW.Helper.LogHelper.WriteInfo("GetInstance", "开始重新尝试登录"); VTX.FW.Helper.LogHelper.WriteInfo("GetInstance", "开始重新尝试登录");
Thread.Sleep(2000); Thread.Sleep(2000);
} }
...@@ -84,6 +85,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -84,6 +85,7 @@ namespace TicketSpider.Spiders.ClassInRule
service.HideCommandPromptWindow = true; service.HideCommandPromptWindow = true;
option.PageLoadStrategy = PageLoadStrategy.Eager; option.PageLoadStrategy = PageLoadStrategy.Eager;
IWebDriver driver = new ChromeDriver(service, option); IWebDriver driver = new ChromeDriver(service, option);
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", "开始登录"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", "开始登录");
try try
{ {
...@@ -104,54 +106,36 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -104,54 +106,36 @@ namespace TicketSpider.Spiders.ClassInRule
while (true) while (true)
{ {
loginCount++; loginCount++;
Console.WriteLine($"正在进行第{loginCount}次模拟登录..."); InfoHelper.WriteLine($"正在进行第{loginCount}次模拟登录...");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在进行第{loginCount}次模拟登录..."); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在进行第{loginCount}次模拟登录...");
var login = BeginSliderLoginHandler(ref driver); var login = BeginSliderLoginHandler(ref driver);
if (login.IsCompleted) if (login.IsCompleted)
{ {
Thread.Sleep(2 * 1000);
driver.SwitchTo().DefaultContent(); driver.SwitchTo().DefaultContent();
Console.WriteLine($"操作完成,正在等待结果");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"操作完成,正在等待结果");
//睡眠1秒,等待跳转
Thread.Sleep(5 * 1000); Thread.Sleep(5 * 1000);
if (driver.Url.Contains("www.eeo.cn/cn/login")) var cookies = driver.Manage().Cookies.AllCookies;
InfoHelper.WriteLine($"操作完成,正在等待结果");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"操作完成,正在等待结果");
//处理
foreach (var item in cookies)
{ {
Console.WriteLine($"模拟登录失败,准备重新执行..."); _loginCookies += item.Name + "=" + item.Value + ";";
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"模拟登录失败,准备重新执行...");
IWebElement silderBoxEle = null;
try
{
silderBoxEle = driver.FindElement(By.Id("reload"));
}
catch (Exception) { }
if (silderBoxEle != null)
{
silderBoxEle.Click();
}
if (loginCount == 4)
{
Console.WriteLine("连续4次失败,请检查账号密码是否正确,系统执行完毕");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"连续4次失败,请检查账号密码是否正确,系统执行完毕");
break;
}
} }
else _loginCookies = _loginCookies.Substring(0, _loginCookies.Length - 1);
if (!string.IsNullOrEmpty(_loginCookies)&&_loginCookies.Contains("sensorsdata2015jssdkcross"))
{ {
Thread.Sleep(3 * 1000);
//处理
foreach (var item in driver.Manage().Cookies.AllCookies)
{
_loginCookies += item.Name + "=" + item.Value + ";";
}
_loginCookies = _loginCookies.Substring(0, _loginCookies.Length - 1);
flag = true; flag = true;
break; break;
} }
else
{
_loginCookies = "";
}
} }
else else
{ {
Console.WriteLine("未知异常,程序退出"); InfoHelper.WriteLine("未知异常,程序退出");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"未知异常,程序退出"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"未知异常,程序退出");
break; break;
} }
...@@ -161,12 +145,12 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -161,12 +145,12 @@ namespace TicketSpider.Spiders.ClassInRule
catch (Exception ex) catch (Exception ex)
{ {
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"获取cooki失败,{ex.Message}"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"获取cooki失败,{ex.Message}");
Console.WriteLine($"获取cooki失败,{ex.Message}"); InfoHelper.WriteLine($"获取cooki失败,{ex.Message}");
} }
driver.Close(); driver.Close();
driver.Quit(); driver.Quit();
driver.Dispose(); driver.Dispose();
Console.WriteLine("完成登录..."); InfoHelper.WriteLine("完成登录...");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"完成登录..."); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"完成登录...");
return flag; return flag;
...@@ -194,7 +178,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -194,7 +178,7 @@ namespace TicketSpider.Spiders.ClassInRule
var bgX = GetBoundary(fileBgPath, fileBlockPath); var bgX = GetBoundary(fileBgPath, fileBlockPath);
Console.WriteLine($"读取背景缺口边界X坐标: {bgX}"); InfoHelper.WriteLine($"读取背景缺口边界X坐标: {bgX}");
VTX.FW.Helper.LogHelper.WriteInfo("BeginSliderLoginHandler", $"读取背景缺口边界X坐标: {bgX}"); VTX.FW.Helper.LogHelper.WriteInfo("BeginSliderLoginHandler", $"读取背景缺口边界X坐标: {bgX}");
Actions action = new(driver); Actions action = new(driver);
...@@ -217,12 +201,8 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -217,12 +201,8 @@ namespace TicketSpider.Spiders.ClassInRule
#endregion #endregion
action.Release(sliderButton); action.Release(sliderButton);
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;
......
using EduSpider.Spiders.ClassInRule; using EduSpider.Spiders.ClassInRule;
using EduSpider.Utility.Plugin;
using System; using System;
using System.Threading; using System.Threading;
...@@ -12,7 +13,7 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -12,7 +13,7 @@ namespace TicketSpider.Spiders.ClassInRule
public void StartAsync() public void StartAsync()
{ {
VTX.FW.Helper.LogHelper.WriteInfo("RunClassInData", "开始ClassIn数据"); VTX.FW.Helper.LogHelper.WriteInfo("RunClassInData", "开始ClassIn数据");
Console.WriteLine("开始模拟登录信息......."); InfoHelper.WriteLine("开始模拟登录信息.......");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始模拟登录信息......."); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始模拟登录信息.......");
string loginCookies = VTX.FW.Helper.ConfigHelper.GetAppsettings("DefaultToken"); string loginCookies = VTX.FW.Helper.ConfigHelper.GetAppsettings("DefaultToken");
//自定获取Cookie //自定获取Cookie
...@@ -21,38 +22,38 @@ namespace TicketSpider.Spiders.ClassInRule ...@@ -21,38 +22,38 @@ namespace TicketSpider.Spiders.ClassInRule
ClassInAccountManager.ClearCookie(); ClassInAccountManager.ClearCookie();
loginCookies = ClassInAccountManager.GetInstance(); loginCookies = ClassInAccountManager.GetInstance();
} }
Console.WriteLine("cookies:" + loginCookies); InfoHelper.WriteLine("cookies:" + loginCookies);
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "cookies:" + loginCookies); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "cookies:" + loginCookies);
Console.WriteLine("开始获取老师信息"); InfoHelper.WriteLine("开始获取老师信息");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取老师信息"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取老师信息");
TeacherManager.RunTeacher(loginCookies); TeacherManager.RunTeacher(loginCookies);
Console.WriteLine("老师信息更新结束"); InfoHelper.WriteLine("老师信息更新结束");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "老师信息更新结束"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "老师信息更新结束");
Console.WriteLine("开始获取学生信息"); InfoHelper.WriteLine("开始获取学生信息");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取学生信息"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取学生信息");
StudentManager.RunAsync(loginCookies); StudentManager.RunAsync(loginCookies);
Console.WriteLine("学生信息更新结束"); InfoHelper.WriteLine("学生信息更新结束");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "学生信息更新结束"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "学生信息更新结束");
Console.WriteLine("开始获取课程信息"); InfoHelper.WriteLine("开始获取课程信息");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取课程信息"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取课程信息");
CourseManager.RunCourse(loginCookies); CourseManager.RunCourse(loginCookies);
Console.WriteLine("课程信息更新结束"); InfoHelper.WriteLine("课程信息更新结束");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "课程信息更新结束"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "课程信息更新结束");
Console.WriteLine("开始获取作业信息"); InfoHelper.WriteLine("开始获取作业信息");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取作业信息"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始获取作业信息");
HomeWorkManager.RunHomeWork(loginCookies); HomeWorkManager.RunHomeWork(loginCookies);
Console.WriteLine("作业信息更新结束"); InfoHelper.WriteLine("作业信息更新结束");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "作业信息更新结束"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "作业信息更新结束");
Console.WriteLine("开始获取测验信息"); InfoHelper.WriteLine("开始获取测验信息");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始测验信息"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "开始测验信息");
QuestionManager.RunHomeWork(loginCookies); QuestionManager.RunHomeWork(loginCookies);
Console.WriteLine("测验信息更新结束"); InfoHelper.WriteLine("测验信息更新结束");
VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "测验信息更新结束"); VTX.FW.Helper.LogHelper.WriteInfo("StartAsync", "测验信息更新结束");
} }
} }
......
using EduSpider.Model.Entity; using EduSpider.Model.Entity;
using EduSpider.Repository; using EduSpider.Repository;
using EduSpider.Utility.Enum; using EduSpider.Utility.Enum;
using EduSpider.Utility.Plugin;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -30,8 +31,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -30,8 +31,7 @@ namespace EduSpider.Spiders.ClassInRule
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseRepository courseRepository = new CourseRepository(); ICourseRepository courseRepository = new CourseRepository();
int totalCount = 0; int totalCount = 0;
Console.WriteLine(string.Format("开始第{0}次获取课程数据", pageCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("开始第{0}次获取课程数据", pageCount));
string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseList"; string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseList";
var response = await request.PostAsync(url, content); var response = await request.PostAsync(url, content);
var result = response.Content.ReadAsStringAsync().Result; var result = response.Content.ReadAsStringAsync().Result;
...@@ -47,7 +47,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -47,7 +47,7 @@ namespace EduSpider.Spiders.ClassInRule
{ {
courseRepository.BatchSetCourseRepository(tempList); courseRepository.BatchSetCourseRepository(tempList);
totalCount += tempList.Count; totalCount += tempList.Count;
Console.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
foreach (var item in tempList) foreach (var item in tempList)
{ {
...@@ -69,8 +69,6 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -69,8 +69,6 @@ namespace EduSpider.Spiders.ClassInRule
for (var i = 2; i <= pageCount; i++) for (var i = 2; i <= pageCount; i++)
{ {
Thread.Sleep(1000 * 2); Thread.Sleep(1000 * 2);
Console.WriteLine(string.Format("第{0}/{1}次获取课程数据", i, pageCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}/{1}次获取课程数据", i, pageCount));
paramStr = string.Format(queryStr, i, perpage); paramStr = string.Format(queryStr, i, perpage);
var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var sub_response = await request.PostAsync(url, sub_content); var sub_response = await request.PostAsync(url, sub_content);
...@@ -92,7 +90,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -92,7 +90,7 @@ namespace EduSpider.Spiders.ClassInRule
RunCourseTeacher(cookie, sItem.CourseId); RunCourseTeacher(cookie, sItem.CourseId);
RunCourseInfo(cookie, sItem.CourseId); RunCourseInfo(cookie, sItem.CourseId);
} }
Console.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount)); InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", i, totalCount)); VTX.FW.Helper.LogHelper.WriteInfo("RunCourse", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
} }
} }
...@@ -162,7 +160,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -162,7 +160,7 @@ namespace EduSpider.Spiders.ClassInRule
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseStudentRepository courseStudentRepository = new CourseStudentRepository(); ICourseStudentRepository courseStudentRepository = new CourseStudentRepository();
Console.WriteLine(string.Format("开始获取{0}课程学员数据", courseId)); InfoHelper.WriteLine(string.Format("开始获取{0}课程学员数据", courseId));
string url = "https://console.eeo.cn/saasajax/student.ajax.php?action=getCourseStudentList"; string url = "https://console.eeo.cn/saasajax/student.ajax.php?action=getCourseStudentList";
var response = await request.PostAsync(url, content); var response = await request.PostAsync(url, content);
...@@ -211,7 +209,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -211,7 +209,7 @@ namespace EduSpider.Spiders.ClassInRule
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository(); ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository();
Console.WriteLine(string.Format("开始获取{0}课程老师数据", courseId)); InfoHelper.WriteLine(string.Format("开始获取{0}课程老师数据", courseId));
string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseTeacherList"; string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseTeacherList";
var response = await request.PostAsync(url, content); var response = await request.PostAsync(url, content);
...@@ -266,7 +264,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -266,7 +264,7 @@ namespace EduSpider.Spiders.ClassInRule
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
ICourseRepository courseRepository = new CourseRepository(); ICourseRepository courseRepository = new CourseRepository();
ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository(); ICourseTeacherRepository courseTeacherRepository = new CourseTeacherRepository();
Console.WriteLine(string.Format("开始获取{0}课程详情数据", courseId)); InfoHelper.WriteLine(string.Format("开始获取{0}课程详情数据", courseId));
string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseInfo"; string url = "https://console.eeo.cn/saasajax/course.ajax.php?action=getCourseInfo";
var response = await request.PostAsync(url, content); var response = await request.PostAsync(url, content);
......
using EduSpider.IRepository; using EduSpider.IRepository;
using EduSpider.Model.Entity; using EduSpider.Model.Entity;
using EduSpider.Repository; using EduSpider.Repository;
using EduSpider.Utility.Plugin;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -32,7 +33,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -32,7 +33,7 @@ namespace EduSpider.Spiders.ClassInRule
IHomeWorkRepository homeWorkRepository = new HomeWorkRepository(); IHomeWorkRepository homeWorkRepository = new HomeWorkRepository();
IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository(); IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository();
int totalCount = 0; int totalCount = 0;
Console.WriteLine(string.Format("开始第{0}次获取家庭作业", pageCount));
string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getHomeworkList"; string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getHomeworkList";
var response = await request.PostAsync(url, content); var response = await request.PostAsync(url, content);
var result = response.Content.ReadAsStringAsync().Result; var result = response.Content.ReadAsStringAsync().Result;
...@@ -48,7 +49,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -48,7 +49,7 @@ namespace EduSpider.Spiders.ClassInRule
{ {
homeWorkRepository.BatchSetHomeWorkRepository(tempList); homeWorkRepository.BatchSetHomeWorkRepository(tempList);
totalCount += tempList.Count; totalCount += tempList.Count;
Console.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
foreach (var item in tempList) foreach (var item in tempList)
{ {
...@@ -69,11 +70,9 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -69,11 +70,9 @@ namespace EduSpider.Spiders.ClassInRule
for (var i = 2; i <= pageCount; i++) for (var i = 2; i <= pageCount; i++)
{ {
Thread.Sleep(1000 * 2); Thread.Sleep(1000 * 2);
Console.WriteLine(string.Format("第{0}/{1}次获取作业数据", i, pageCount));
paramStr = string.Format(queryStr, i, perpage); paramStr = string.Format(queryStr, i, perpage);
var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var sub_content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
var sub_response = await request.PostAsync(url, sub_content); var sub_response = await request.PostAsync(url, sub_content);
var sub_result = sub_response.Content.ReadAsStringAsync().Result; var sub_result = sub_response.Content.ReadAsStringAsync().Result;
if (!string.IsNullOrWhiteSpace(sub_result)) if (!string.IsNullOrWhiteSpace(sub_result))
{ {
...@@ -94,7 +93,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -94,7 +93,7 @@ namespace EduSpider.Spiders.ClassInRule
{ {
// stuHomeWorkRepository.CreateHomeWorkCommentRepository(0); // stuHomeWorkRepository.CreateHomeWorkCommentRepository(0);
} }
Console.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount)); InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount)); VTX.FW.Helper.LogHelper.WriteInfo("RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
} }
} }
...@@ -181,7 +180,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -181,7 +180,7 @@ namespace EduSpider.Spiders.ClassInRule
string paramStr = string.Format(queryStr, homework_id, courseId, stuIds); string paramStr = string.Format(queryStr, homework_id, courseId, stuIds);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
Console.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id)); InfoHelper.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id));
string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getStudentsHomeworkList"; string url = "https://console.eeo.cn/saasajax/homework.ajax.php?action=getStudentsHomeworkList";
var response = await request.PostAsync(url, content); var response = await request.PostAsync(url, content);
var sutHomeWorkResult = response.Content.ReadAsStringAsync().Result; var sutHomeWorkResult = response.Content.ReadAsStringAsync().Result;
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
using EduSpider.Model.Entity; using EduSpider.Model.Entity;
using EduSpider.Repository; using EduSpider.Repository;
using EduSpider.Utility; using EduSpider.Utility;
using EduSpider.Utility.Plugin;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -29,10 +30,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -29,10 +30,7 @@ namespace EduSpider.Spiders.ClassInRule
string paramStr = string.Format(queryStr, pageCount, perpage,range); string paramStr = string.Format(queryStr, pageCount, perpage,range);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
IHomeWorkRepository homeWorkRepository = new HomeWorkRepository(); IHomeWorkRepository homeWorkRepository = new HomeWorkRepository();
IStuHomeWorkRepository stuHomeWorkRepository = new StuHomeWorkRepository();
int totalCount = 0; int totalCount = 0;
Console.WriteLine(string.Format("开始第{0}次获取测验", pageCount));
VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("开始第{0}次获取测验", pageCount));
string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getExamManageList"; string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getExamManageList";
var response = request.PostAsync(url, content); var response = request.PostAsync(url, content);
var result = response.Result.Content.ReadAsStringAsync().Result; var result = response.Result.Content.ReadAsStringAsync().Result;
...@@ -48,7 +46,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -48,7 +46,7 @@ namespace EduSpider.Spiders.ClassInRule
{ {
homeWorkRepository.BatchSetHomeWorkRepository(tempList); homeWorkRepository.BatchSetHomeWorkRepository(tempList);
totalCount += tempList.Count; totalCount += tempList.Count;
Console.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount)); VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", pageCount, totalCount));
foreach (var item in tempList) foreach (var item in tempList)
{ {
...@@ -90,11 +88,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -90,11 +88,7 @@ namespace EduSpider.Spiders.ClassInRule
{ {
RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id, sItem); RunStuHomeWork(cookie, sItem.Homework_id, sItem.Course_id, sItem);
} }
if (i == totalCount) InfoHelper.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
{
// stuHomeWorkRepository.CreateHomeWorkCommentRepository(0);
}
Console.WriteLine(string.Format("第{0}次,导入完成{1}条.", i, totalCount));
VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount)); VTX.FW.Helper.LogHelper.WriteInfo("QuestionManager_RunHomeWork", string.Format("第{0}次,导入完成{1}条.", i, totalCount));
} }
} }
...@@ -218,7 +212,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -218,7 +212,7 @@ namespace EduSpider.Spiders.ClassInRule
string paramStr = string.Format(queryStr, homework_id, courseId, stuIds); string paramStr = string.Format(queryStr, homework_id, courseId, stuIds);
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
Console.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id)); InfoHelper.WriteLine(string.Format("开始获取{0}作业学员数据", homework_id));
VTX.FW.Helper.LogHelper.WriteInfo("RunStuHomeWork", string.Format("开始获取{0}作业学员数据", homework_id)); VTX.FW.Helper.LogHelper.WriteInfo("RunStuHomeWork", string.Format("开始获取{0}作业学员数据", homework_id));
string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getCourseExamsStDetailList"; string url = "https://console.eeo.cn/saasajax/exam.ajax.php?action=getCourseExamsStDetailList";
var response = request.PostAsync(url, content); var response = request.PostAsync(url, content);
......
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
using EduSpider.Model.Entity; using EduSpider.Model.Entity;
using EduSpider.Repository; using EduSpider.Repository;
using EduSpider.Utility; using EduSpider.Utility;
using EduSpider.Utility.Plugin;
using Newtonsoft.Json.Linq; using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
...@@ -32,7 +33,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -32,7 +33,7 @@ namespace EduSpider.Spiders.ClassInRule
while (pageIndex <= pageCount) while (pageIndex <= pageCount)
{ {
Console.WriteLine($"正在查询第{pageIndex}-{pageSize}页学员信息"); InfoHelper.WriteLine($"正在查询第{pageIndex}-{pageSize}页学员信息");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在查询第{pageIndex}-{pageSize}页学员信息"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"正在查询第{pageIndex}-{pageSize}页学员信息");
var paramStr = $"page={pageIndex}&perpage={pageSize}&isdel=0"; var paramStr = $"page={pageIndex}&perpage={pageSize}&isdel=0";
var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded"); var content = new StringContent(paramStr, System.Text.Encoding.UTF8, "application/x-www-form-urlencoded");
...@@ -45,6 +46,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -45,6 +46,7 @@ namespace EduSpider.Spiders.ClassInRule
{ {
var data = (result.val.ContainsKey("data") ? result.val["data"] : new JObject()) as JObject; var data = (result.val.ContainsKey("data") ? result.val["data"] : new JObject()) as JObject;
if (data.ContainsKey("totalStudentNum")) { if (data.ContainsKey("totalStudentNum")) {
#region 更新PageCount #region 更新PageCount
if (pageIndex == 1) if (pageIndex == 1)
...@@ -76,7 +78,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -76,7 +78,7 @@ namespace EduSpider.Spiders.ClassInRule
}); });
} }
courseRepository.BatchSetStudent(stus); courseRepository.BatchSetStudent(stus);
Console.WriteLine($"已导入第{pageIndex}-{pageSize}页学员信息"); InfoHelper.WriteLine($"已导入第{pageIndex}-{pageSize}页学员信息");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"已导入第{pageIndex}-{pageSize}页学员信息"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"已导入第{pageIndex}-{pageSize}页学员信息");
#endregion #endregion
...@@ -111,7 +113,7 @@ namespace EduSpider.Spiders.ClassInRule ...@@ -111,7 +113,7 @@ namespace EduSpider.Spiders.ClassInRule
} }
#endregion #endregion
Console.WriteLine("学员同步完成"); InfoHelper.WriteLine("学员同步完成");
VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"学员同步完成"); VTX.FW.Helper.LogHelper.WriteInfo("RunAsync", $"学员同步完成");
} }
......
using OpenQA.Selenium; using EduSpider.Utility.Plugin;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome; using OpenQA.Selenium.Chrome;
using System; using System;
using System.Net; using System.Net;
...@@ -42,7 +43,7 @@ namespace EduSpider.Spiders.SchoolHouseKeeper ...@@ -42,7 +43,7 @@ namespace EduSpider.Spiders.SchoolHouseKeeper
} }
else else
{ {
Console.WriteLine("开始重新尝试登录校管家"); InfoHelper.WriteLine("开始重新尝试登录校管家");
Thread.Sleep(2000); Thread.Sleep(2000);
} }
} }
...@@ -105,10 +106,10 @@ namespace EduSpider.Spiders.SchoolHouseKeeper ...@@ -105,10 +106,10 @@ namespace EduSpider.Spiders.SchoolHouseKeeper
} }
catch (Exception ex) catch (Exception ex)
{ {
Console.WriteLine($"获取cooki失败,{ex.Message}"); InfoHelper.WriteLine($"获取cooki失败,{ex.Message}");
} }
driver.Quit(); driver.Quit();
Console.WriteLine("完成登录..."); InfoHelper.WriteLine("完成登录...");
return flag; return flag;
} }
......
using Newtonsoft.Json.Linq; using EduSpider.Utility.Plugin;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
...@@ -37,7 +38,7 @@ namespace EduSpider.Spiders.SchoolHouseKeeper ...@@ -37,7 +38,7 @@ namespace EduSpider.Spiders.SchoolHouseKeeper
pageCount = jobj.GetInt("PageCount"); pageCount = jobj.GetInt("PageCount");
totalCount = jobj.GetInt("TotalCount"); totalCount = jobj.GetInt("TotalCount");
list.AddRange(ParseJson(jobj.GetString("Data"))); list.AddRange(ParseJson(jobj.GetString("Data")));
Console.WriteLine(string.Format("已完成 第 {0} 页/共 {1} 页,已完成 {2} 条/总共 {3} 条", pageModel.PageIndex, pageCount, pageModel.PageSize * pageModel.PageIndex, totalCount)); InfoHelper.WriteLine(string.Format("已完成 第 {0} 页/共 {1} 页,已完成 {2} 条/总共 {3} 条", pageModel.PageIndex, pageCount, pageModel.PageSize * pageModel.PageIndex, totalCount));
if (pageCount > pageModel.PageIndex) if (pageCount > pageModel.PageIndex)
{ {
Random random = new(); Random random = new();
...@@ -52,12 +53,11 @@ namespace EduSpider.Spiders.SchoolHouseKeeper ...@@ -52,12 +53,11 @@ namespace EduSpider.Spiders.SchoolHouseKeeper
JObject subObj = JObject.Parse(subResult); JObject subObj = JObject.Parse(subResult);
list.AddRange(ParseJson(subObj.GetString("Data"))); list.AddRange(ParseJson(subObj.GetString("Data")));
} }
Console.WriteLine(string.Format("已完成 第 {0} 页/共 {1} 页,已完成 {2} 条/总共 {3} 条", pageModel.PageIndex, pageCount, pageModel.PageSize * pageModel.PageIndex, totalCount)); InfoHelper.WriteLine(string.Format("已完成 第 {0} 页/共 {1} 页,已完成 {2} 条/总共 {3} 条", pageModel.PageIndex, pageCount, pageModel.PageSize * pageModel.PageIndex, totalCount));
} }
} }
} }
Console.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list)); InfoHelper.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list));
} }
/// <summary> /// <summary>
......
using Newtonsoft.Json.Linq; using EduSpider.Utility.Plugin;
using Newtonsoft.Json.Linq;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Net.Http; using System.Net.Http;
...@@ -32,10 +33,9 @@ namespace EduSpider.Spiders.SchoolHouseKeeper ...@@ -32,10 +33,9 @@ namespace EduSpider.Spiders.SchoolHouseKeeper
pageCount = jobj.GetInt("PageCount"); pageCount = jobj.GetInt("PageCount");
totalCount = jobj.GetInt("TotalCount"); totalCount = jobj.GetInt("TotalCount");
list.AddRange(ParseJson(jobj.GetString("Data"))); list.AddRange(ParseJson(jobj.GetString("Data")));
Console.WriteLine(string.Format("已完成 总共 {0} 条", totalCount)); InfoHelper.WriteLine(string.Format("已完成 总共 {0} 条", totalCount));
} }
Console.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list)); InfoHelper.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list));
} }
...@@ -93,9 +93,9 @@ namespace EduSpider.Spiders.SchoolHouseKeeper ...@@ -93,9 +93,9 @@ namespace EduSpider.Spiders.SchoolHouseKeeper
pageCount = jobj.GetInt("PageCount"); pageCount = jobj.GetInt("PageCount");
totalCount = jobj.GetInt("TotalCount"); totalCount = jobj.GetInt("TotalCount");
list.AddRange(ParseDepartJson(jobj.GetString("Data"))); list.AddRange(ParseDepartJson(jobj.GetString("Data")));
Console.WriteLine(string.Format("已完成 总共 {0} 条", totalCount)); InfoHelper.WriteLine(string.Format("已完成 总共 {0} 条", totalCount));
} }
Console.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list)); InfoHelper.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list));
} }
...@@ -157,9 +157,9 @@ namespace EduSpider.Spiders.SchoolHouseKeeper ...@@ -157,9 +157,9 @@ namespace EduSpider.Spiders.SchoolHouseKeeper
pageCount = jobj.GetInt("PageCount"); pageCount = jobj.GetInt("PageCount");
totalCount = jobj.GetInt("TotalCount"); totalCount = jobj.GetInt("TotalCount");
list.AddRange(ParseEmployeeJson(jobj.GetString("Data"))); list.AddRange(ParseEmployeeJson(jobj.GetString("Data")));
Console.WriteLine(string.Format("已完成 总共 {0} 条", totalCount)); InfoHelper.WriteLine(string.Format("已完成 总共 {0} 条", totalCount));
} }
Console.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list)); InfoHelper.WriteLine("result:" + VTX.FW.Helper.JsonHelper.Serialize(list));
} }
/// <summary> /// <summary>
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace EduSpider.Spiders.SchoolHouseKeeper
{
/// <summary>
/// 校管家任务
/// </summary>
public class SchoolTaskHelper
{
/// <summary>
/// 校管家任务
/// </summary>
public static void RunTask()
{
Console.WriteLine("开始校管家任务");
string cookies = "";
cookies = AccountHelper.GetInstance();
while (string.IsNullOrEmpty(cookies))
{
cookies = AccountHelper.GetInstance();
Thread.Sleep(1000 * 2);
}
Console.WriteLine("cookies:" + cookies);
//cookies = "_ga=GA1.2.1298484415.1654154393; %E5%BA%B7%E7%A3%8A%40jjswGetNewChargeGuide=true; chargeVersion=2; ASP.NET_SessionId=4rjp3ycjhy0faqti3w5mrssb; _gid=GA1.2.738826376.1654680792; autologin=null; loginname=null; loginpwd=null; .ASPXAUTH=B7153A073900F0DDA6155395E8C26A49E2256938BEE1987E6B1B26BE03DFE475EE924CFB2D783CCA46525F1EE2F57442DA29A35087C061B925A96FC4CEDCF850D0CBE9B07A02D7C2F44EE5EB6FA243D1D92B325A5E2EE8D8272514E861A50AAE903C5D777C623EFE3CA6BE7E4CDD78287233F02CBE8B413AACE0963FD4BE6639F9AC6804300F1AA1FFCF44EF7D389041; lastloginname=%E5%88%98%E5%B8%85%40jjsw; _gat_gtag_UA_167872829_1=1";
if (!string.IsNullOrEmpty(cookies))
{
SchoolManager.RunSchool(cookies);
//SchoolManager.RunDepartment(cookies);
//SchoolCourseManager.RunCourse(cookies);
}
Console.WriteLine("结束校管家任务");
}
}
}
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
"DefaultConnectionPName": "MySql.Data.MySqlClient" "DefaultConnectionPName": "MySql.Data.MySqlClient"
}, },
//是否开启Chrome[1-开启,0-关闭] //是否开启Chrome[1-开启,0-关闭]
"IsOpenChrome":1, "IsOpenChrome":0,
//默认Token //默认Token
"DefaultToken": "" "DefaultToken": ""
} }
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