From b248600fdababadfec5fa87a7cd9c65af27133cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=D0=A1=C2=B7=C3=A6?= <279202647@qq.com>
Date: Fri, 29 Oct 2021 13:55:21 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=A4=A7=E6=B5=8F=E8=A7=88=E5=99=A8?=
=?UTF-8?q?=E5=86=85=E6=A0=B8=E5=86=85=E5=AD=98?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../齐越慧眼/齐越慧眼/App.xaml.cs | 32 +++++----
.../齐越慧眼/LoginWindowViewModel.cs | 4 +-
.../Properties/launchSettings.json | 8 +++
.../UserControls/BrowerControl.xaml.cs | 65 ++++++++++++++-----
.../cefhelper/CefRequestHandler.cs | 25 +++++--
5 files changed, 97 insertions(+), 37 deletions(-)
create mode 100644 客户端/齐越慧眼/齐越慧眼/Properties/launchSettings.json
diff --git a/客户端/齐越慧眼/齐越慧眼/App.xaml.cs b/客户端/齐越慧眼/齐越慧眼/App.xaml.cs
index 5ad715f..e8e7daa 100644
--- a/客户端/齐越慧眼/齐越慧眼/App.xaml.cs
+++ b/客户端/齐越慧眼/齐越慧眼/App.xaml.cs
@@ -4,6 +4,7 @@ using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
+using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -19,17 +20,26 @@ namespace 齐越慧眼
{
public App() {
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- var settings = new CefSettings() {
- // CachePath = System.Environment.CurrentDirectory + "\\webDatas\\data",
- // LocalesDirPath = System.Environment.CurrentDirectory + "\\webDatas",
- // RootCachePath= System.Environment.CurrentDirectory + "\\rootCache",
- UserAgent= "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.87 Safari/537.36 SE 2.X MetaSr 1.0",
- Locale= "zh-CN",
- // AutoDetectProxySettings = false,
- // PackLoadingDisabled = true,
- // LogSeverity = LogSeverity.Disable
- };
- // ...
+ var settings = new CefSettings()
+ {
+ UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.1.110 Safari/537.36 SE 2.X MetaSr 1.0",
+ Locale = "zh-CN",
+ AcceptLanguageList= "zh-CN,zh;q=0.8",
+ PersistSessionCookies=true,
+ CachePath = Directory.GetCurrentDirectory() + @"\Cache",
+ //LocalesDirPath = Directory.GetCurrentDirectory() + "/localeDir",
+ LogFile = Directory.GetCurrentDirectory() + "/LogData",
+ UserDataPath = Directory.GetCurrentDirectory() + "/userData"
+ };
+ settings.CefCommandLineArgs.Add("--js-flags", "--max_old_space_size=16384");
+ settings.CefCommandLineArgs.Add("enable-media-stream", "0");
+ settings.CefCommandLineArgs.Add("--ignore-urlfetcher-cert-requests", "1");
+ settings.CefCommandLineArgs.Add("--ignore-certificate-errors", "1");
+
+ settings.CefCommandLineArgs.Add("disable-gpu", "0");
+
+ settings.CefCommandLineArgs.Add("no-proxy-server", "1");
+ //settings.CefCommandLineArgs.Add("ppapi-flash-path", AppDomain.CurrentDomain.BaseDirectory + "\\Plugins\\pepflash\\pepflashplayer.dll");
settings.RegisterScheme(new CefCustomScheme()
{
diff --git a/客户端/齐越慧眼/齐越慧眼/LoginWindowViewModel.cs b/客户端/齐越慧眼/齐越慧眼/LoginWindowViewModel.cs
index 7ef9179..d04816a 100644
--- a/客户端/齐越慧眼/齐越慧眼/LoginWindowViewModel.cs
+++ b/客户端/齐越慧眼/齐越慧眼/LoginWindowViewModel.cs
@@ -25,7 +25,7 @@ namespace 齐越慧眼
}
- private string _UserName;
+ private string _UserName="测试001";
///
/// 用戶名
///
@@ -36,7 +36,7 @@ namespace 齐越慧眼
}
- private string _UserPwd;
+ private string _UserPwd="666666";
///
/// 用户密码
///
diff --git a/客户端/齐越慧眼/齐越慧眼/Properties/launchSettings.json b/客户端/齐越慧眼/齐越慧眼/Properties/launchSettings.json
new file mode 100644
index 0000000..85e32fa
--- /dev/null
+++ b/客户端/齐越慧眼/齐越慧眼/Properties/launchSettings.json
@@ -0,0 +1,8 @@
+{
+ "profiles": {
+ "齐越慧眼": {
+ "commandName": "Project",
+ "nativeDebugging": true
+ }
+ }
+}
\ No newline at end of file
diff --git a/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs b/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
index 18cf2b1..059e86d 100644
--- a/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
+++ b/客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
@@ -27,16 +27,20 @@ namespace 齐越慧眼.UserControls
BrowserSettings =
{
DefaultEncoding = "UTF-8",
- // Plugins = CefState.Enabled,
+ Plugins = CefState.Enabled,
//关于跨域限制
//WebSecurity = CefState.Disabled,
- // ApplicationCache = CefState.Enabled,
- // LocalStorage = CefState.Enabled
+ ApplicationCache = CefState.Enabled,
+ LocalStorage = CefState.Enabled
},
- // RequestHandler = myRequest
+
+ //RequestHandler =new MyRequestHandler()
};
+ MyResourceRequestHandlerFactory myResourceRequestHandlerFactory = new MyResourceRequestHandlerFactory();
+ myResourceRequestHandlerFactory.Handlers.TryAdd("test",null);
+ web.ResourceRequestHandlerFactory = myResourceRequestHandlerFactory;
grid.Children.Add(web);
@@ -46,19 +50,32 @@ namespace 齐越慧眼.UserControls
web.JavascriptObjectRepository.Register("hyCoreModel", new CefAsyncJS(), BindingOptions.DefaultBinder);
Main = this;
web.StartNewWindow += Web_StartNewWindow;
-
+
}
+ int nowPatlom = 0;
+
public void OnUrlEnd(string url)
{
if (url.Contains("s_new.php"))
{
Task.Factory.StartNew(() =>
{
+ nowPatlom = 1;
lastUrl = "search.jd.com";
DoWork();
});
}
+
+ if (url.Contains("s.1688.com/selloffer/offer_search.htm"))
+ {
+ Task.Factory.StartNew(() =>
+ {
+ nowPatlom = 2;
+ lastUrl = "s.1688.com";
+ StartPage();
+ });
+ }
}
private void Web_StartNewWindow(object sender, NewWindowEventArgs e)
@@ -102,9 +119,22 @@ namespace 齐越慧眼.UserControls
//开始单页查询
if (lastUrl.StartsWith("https://s.taobao.com/search")|| lastUrl.StartsWith("https://search.jd.com/")||lastUrl.StartsWith("https://s.1688.com/selloffer/offer_search.htm"))
{
+ if (lastUrl.StartsWith("https://s.taobao.com/search")) {
+
+ nowPatlom = 0;
+ }
+ if (lastUrl.StartsWith("https://search.jd.com/"))
+ {
+
+ nowPatlom =1;
+ }
+ if (lastUrl.StartsWith("https://s.1688.com/"))
+ {
+
+ nowPatlom = 2;
+ }
StartPage();
}
- // web.ShowDevTools();
}
}
@@ -124,7 +154,7 @@ namespace 齐越慧眼.UserControls
AddJquery();
}
- AddAjaxHook();
+ // AddAjaxHook();
DoWork();
}
@@ -158,26 +188,26 @@ namespace 齐越慧眼.UserControls
{
AddCss();
- if (lastUrl.Contains("s.taobao.com"))
+ if (nowPatlom==0)
{
AddTaoBaoOptionDiv();
CheckTaoBaoPageItem();
}
- if (lastUrl.Contains("search.jd.com"))
+ if (nowPatlom == 1)
{
AddJDOptionDiv();
CheckJDPageItem();
}
- //if (lastUrl.Contains("s.1688.com"))
- //{
- // Add1688OptionDiv();
- // Check1688PageItem();
- // web.ShowDevTools();
- //}
+ if (nowPatlom == 2)
+ {
+ Add1688OptionDiv();
+ Check1688PageItem();
+ web.ShowDevTools();
+ }
- lastUrl = string.Empty;
+ //lastUrl = string.Empty;
break;
}
@@ -410,7 +440,8 @@ namespace 齐越慧眼.UserControls
{
reports.ForEach(c =>
{
- string objid = Regex.Match(c, "object_id@(.*?)^").Groups[1].Value;
+ string objid = Regex.Match(c, "object_id\\@(.*?)\\^").Groups[1].Value;
+ DoJavaScript(@$"$(""ul#sm-offer-list"").find('div[data-aplus-report=""{c}""]').attr(""data-sku"",""{objid}"")");
itemIds.Add(objid);
});
}
diff --git a/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs b/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs
index 99bef6b..7a21522 100644
--- a/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs
+++ b/客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs
@@ -14,7 +14,6 @@ namespace 齐越慧眼.cefhelper
public class MyRequestHandler : RequestHandler
{
- public BrowerControl brower { get; set; }
protected override bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture,
bool isRedirect)
@@ -27,17 +26,29 @@ namespace 齐越慧眼.cefhelper
IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
{
- if (!string.IsNullOrEmpty(request.Url))
- {
- if (request.Url.Contains("jd.com")) {
- brower.OnUrlEnd(request.Url);
- }
- }
// 先调用基类的实现,断点调试
return base.GetResourceRequestHandler(
chromiumWebBrowser, browser, frame, request, isNavigation,
isDownload, requestInitiator, ref disableDefaultHandling);
}
+
+ }
+
+ public class MyResourceRequestHandlerFactory : ResourceRequestHandlerFactory
+ {
+ protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
+ {
+ return new MyResourceRequestHandler();
+ }
+ }
+
+ public class MyResourceRequestHandler : ResourceRequestHandler
+ {
+ protected override bool OnResourceResponse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
+ {
+ MainWindow.Main.brower.OnUrlEnd(request.Url);
+ return base.OnResourceResponse(chromiumWebBrowser, browser, frame, request, response);
+ }
}
}