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); + } } }