小程序冲稳保逻辑调整

develop
old易 2024-03-07 16:36:08 +08:00
parent 644f462ba8
commit 5a3fe22deb
4 changed files with 73 additions and 18 deletions

View File

@ -186,11 +186,12 @@ namespace New_College.Repository
//.WhereIF(query.Year > 0, p => p.Years == query.Year)
.WhereIF(!string.IsNullOrEmpty(query.Location), p => p.Location == query.Location)
//.WhereIF(!string.IsNullOrEmpty(query.BatchName), p => p.BatchName == query.BatchName)
.WhereIF(string.IsNullOrWhiteSpace(query.Type), p => int.Parse(p._23Score) > 0 && (int.Parse(p._23Score) <= query.Score + 15))
.WhereIF(query.Type == "冲", p => int.Parse(p._23Score) > 0 && (int.Parse(p._23Score) <= query.Score + 15 && int.Parse(p._23Score) > query.Score + 5))
.WhereIF(query.Type == "稳", p => int.Parse(p._23Score) > 0 && (int.Parse(p._23Score) <= query.Score + 5 && int.Parse(p._23Score) > query.Score - 15))
.WhereIF(query.Type == "保", p => int.Parse(p._23Score) > 0 && (int.Parse(p._23Score) < query.Score - 15))
.WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), c => SqlFunc.Contains(c._24subject, claim[0]) || SqlFunc.Contains(c._24subject, claim[1]) || SqlFunc.Contains(c._24subject, claim[2]) || c._24subject == "不限")
.WhereIF(string.IsNullOrWhiteSpace(query.Type), p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score - 60, query.Score + 15))
// .WhereIF(string.IsNullOrWhiteSpace(query.Type), p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score, query.Score + 15))
.WhereIF(query.Type == "冲", p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score, query.Score + 15))
.WhereIF(query.Type == "稳", p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score - 26, query.Score - 1))
.WhereIF(query.Type == "保", p => int.Parse(p._23Score) > 0 && SqlFunc.Between(int.Parse(p._23Score), query.Score - 60, query.Score - 26))
.WhereIF(!string.IsNullOrWhiteSpace(query.SubjectClaim), c => SqlFunc.Contains(c._24subject, claim[0]) || SqlFunc.Contains(c._24subject, claim[1]) || SqlFunc.Contains(c._24subject, claim[2]) || c._24subject == "不限")
.WhereIF(majornames.Any() && majornames.Count() > 0, p => SqlFunc.ContainsArray(majornames, p.MajorName))
.ToListAsync();
@ -200,26 +201,26 @@ namespace New_College.Repository
{ Id = c.Id, Logo = c.Logo, Name = c.Name }).ToList();
var ulist = universitylist.Select(s => new UniversityEnrollmentPlanResult()
{
Logo = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Logo,
UniversityId = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Id,
AreaName = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Province,
UniversityCode = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).EnrollmentCode,
Logo = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Logo : "",
UniversityId = universitytemps.FirstOrDefault(e => e.Name == s.UniversityName) != null ? universitytemps.FirstOrDefault(e => e.Name == s.UniversityName).Id : 0,
AreaName = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName) != null ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Province : "",
UniversityCode = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName) != null ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).EnrollmentCode : "",
Rank = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).UniversityRank.ToString(),
_985 = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("985") ? "是" : "否") : "否",
_211 = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("211") ? "是" : "否") : "否",
_SYL = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel != null ? (recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).LnstitutionalLevel.Contains("双一流") ? "是" : "否") : "否",
SchoolScoreline = int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScoreLine),
SchoolLowScore = int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScore),
SchoolScoreline = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName) != null ? int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScoreLine) : 0,
SchoolLowScore = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName) != null ? int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23SchoolScore) : 0,
Type = MajorPlanScoreTool.GetPlanScore(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score) == 2 ? "冲" : MajorPlanScoreTool.GetPlanScore(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score) == 1 ? "稳" : "保",//冲稳保院校
Percentage = MajorPlanScoreTool.GetPlanPercentage(int.Parse(recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName)._23Score), (int)query.Score),
AscriptionName = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Ownership,
CityName = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).City,
AscriptionName = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName) != null ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).Ownership : "",
CityName = recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName) != null ? recommendInfo.FirstOrDefault(e => e.UniversityName == s.UniversityName).City : "",
MjaorPlan = recommendInfo.Where(e => e.UniversityName == s.UniversityName).Count(),
planCount = recommendInfo.Where(e => e.UniversityName == s.UniversityName).Sum(m => int.Parse(m._23Count)),
PlanIds = recommendInfo.Where(e => e.UniversityName == s.UniversityName).Select(c => c.ID).ToList(),
UniversityName = s.UniversityName,
}).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize).ToList();
}).OrderByDescending(t => t.Type).OrderBy(t => t.SchoolScoreline).Skip(query.PageSize * (query.PageIndex - 1)).Take(query.PageSize).ToList();
return new MessageModel<PageModel<UniversityEnrollmentPlanResult>>()
{

View File

@ -1,7 +1,10 @@
using HtmlAgilityPack;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
@ -9,7 +12,7 @@ namespace New_Spider
{
public class HtmlAgNewsHelper
{
public async void HtmlCreatePageData()
public void HtmlCreatePageData()
{
HtmlWeb webClient = new HtmlWeb();
HtmlDocument doc = webClient.Load("https://www.sdzk.cn/NewsList.aspx?BCID=2");
@ -40,5 +43,54 @@ namespace New_Spider
});
}
public void HtmlSpiderYangGuangData()
{
// 初始化 Chrome 驱动
var options = new ChromeOptions();
// 如果需要,添加无头模式选项
options.AddArgument("--headless");
options.AddArgument("--no-sandbox");
options.AddArgument("--disable-dev-shm-usage");
String driverExecutableFileName = "chromedriver";
String driverPath = "D:\\一草一木教育\\newgaokao\\New_Spider\\bin\\Debug\\net6.0\\";
ChromeDriverService service = ChromeDriverService.CreateDefaultService(driverPath, driverExecutableFileName);
var driver = new ChromeDriver(service, options);
// 导航到目标网页
driver.Navigate().GoToUrl("https://gaokao.chsi.com.cn/news/zszc.do");
// 等待页面加载完成,包括动态内容
Thread.Sleep(1000); // 这里使用简单的等待,更好的做法是使用 WebDriverWait
// 获取动态内容
var content = driver.FindElement(By.XPath("//*[@id=\"app\"]/div[2]/div[2]"));
// 也可以进一步获取子节点的子节点
IReadOnlyCollection<IWebElement> grandChildElements = driver.FindElements(By.XPath("//*[@id=\"app\"]/div[2]/div[2]/div[*]"));
foreach (IWebElement grandChildElement in grandChildElements)
{
var grandChild = grandChildElement.FindElement(By.TagName("span"));
var grandChildText = grandChild.Text;
var titletext= grandChildElement.FindElement(By.TagName("a")).Text;
var aurl= grandChildElement.FindElement(By.TagName("a")).GetAttribute("href");
Console.WriteLine($"Grandchild Element Text: {grandChildText}");
}
// 关闭浏览器驱动
driver.Quit();
// 打印动态内容
Console.WriteLine(content);
}
}
}

View File

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
@ -9,6 +9,8 @@
<ItemGroup>
<PackageReference Include="HtmlAgilityPack" Version="1.11.53" />
<PackageReference Include="Selenium.WebDriver" Version="4.18.1" />
<PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="122.0.6261.9400" />
</ItemGroup>

View File

@ -11,8 +11,8 @@ using System.Text.RegularExpressions;
//agMajorHelper.DownloadChildTypeListFile();
HtmlAgNewsHelper agNewsHelper = new HtmlAgNewsHelper();
agNewsHelper.HtmlCreatePageData();
//agNewsHelper.HtmlCreatePageData();
agNewsHelper.HtmlSpiderYangGuangData();
Console.Read();
// See https://aka.ms/new-console-template for more information