using CefSharp; using System; using System.Collections.Generic; using System.Text; using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows; using System.Windows.Markup; using 齐越慧眼.Models; namespace 齐越慧眼.UserControls { public partial class BrowerControl { /// /// 淘宝查询按钮点击 /// public void StartTaoBaoSearch() { if (!btn_searchItems.IsEnabled) return; btn_searchItems.IsEnabled = false; searchLoding.Visibility=Visibility.Visible; Task.Factory.StartNew(() => { try { List totalItems = new List(); for (int i = 1; i <= 5; i++) { //等待页面加载完成 while (!DoJavaScript("return $(document.body).html();").isOk) { Thread.Sleep(100); } //切换到当前页 string pageText = (string)DoJavaScript("return $(\"#mainsrp-pager div[class=total]\").text()").result; pageText = Regex.Match(pageText, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim(); int.TryParse(pageText, out int totalPage); if (totalPage >= i) { DoJavaScript($"$($(\"#mainsrp-pager li[class*=item]\")[{i}]).find(\"a\")[0].click()"); Thread.Sleep(500); } //等待页面加载完成 while (DoJavaScript("return $(document.body).html();").result?.ToString().Contains("myitemState")!=true) { Thread.Sleep(100); } if (totalPage != 0) { while (DoJavaScript(@"return $(""#mainsrp-pager li[class='item active']"")[0].innerText").result?.ToString() != i.ToString()) { Thread.Sleep(100); } } //刷新总页数 pageText = (string)DoJavaScript("return $(\"#mainsrp-pager div[class=total]\").text()").result; pageText = Regex.Match(pageText, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim(); int.TryParse(pageText, out totalPage); DoJavaScript("$(\"#mainsrp-pager li[class*=item]\")[0].scrollIntoView()"); var res = DoJavaScript(@"var ids=[]; $('div#mainsrp-itemlist .items .item').each(function(){ var ele=this; var itemid= $(ele).find(""a"").attr(""data-nid""); var infoDiv=$($(ele).find("".J_IconMoreNew"")); var price=infoDiv.find("".g_price"").text(); var sales=infoDiv.find("".deal-cnt"").text(); var title=infoDiv.find("".title"").text(); var img=$(ele).find(""img"").attr(""src""); if(img==""//g.alicdn.com/s.gif""||img==null||img==undefined) { img=$(ele).find(""img"").attr(""data-src""); } ids.push({itemid:itemid,price:price,sales:sales,title:title,img:img}); }); return ids;"); List itemHtmls = Newtonsoft.Json.JsonConvert.DeserializeObject>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result)); itemHtmls.ForEach(item => { item.Price = Regex.Match(item.Price, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim(); item.Sales = Regex.Match(item.Sales, @"([1-9]\d*\.?\d*)|(0\.\d*[1-9])").Groups[0].Value.Trim(); item.Title = item.Title.Trim(); item.Img = item.Img.StartsWith("//") ? $"https:{item.Img}" : item.Img; }); //将当前页面的商品加入 totalItems.AddRange(itemHtmls); if (i>=totalPage) { break; } Thread.Sleep(2000); } } catch (Exception ex) { } finally { Application.Current.Dispatcher.Invoke(() => { btn_searchItems.IsEnabled = true; searchLoding.Visibility = Visibility.Collapsed; }); } }); } } }