5 changed files with 194 additions and 4 deletions
@ -0,0 +1,31 @@ |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Text; |
|||
using System.Windows.Markup; |
|||
|
|||
namespace 齐越慧眼.Models |
|||
{ |
|||
public class SearchItemModel |
|||
{ |
|||
|
|||
public string Price { get; set; } |
|||
|
|||
public string Sales { get; set; } |
|||
|
|||
public string Title { get; set; } |
|||
|
|||
public string Img { get; set; } |
|||
|
|||
public string ItemId { get; set; } |
|||
|
|||
public string Html { get; set; } |
|||
|
|||
} |
|||
|
|||
public class SearchItemModelExt : SearchItemModel |
|||
{ |
|||
public decimal _Price { get; set; } |
|||
|
|||
public int _Sales { get; set; } |
|||
} |
|||
} |
@ -0,0 +1,119 @@ |
|||
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 |
|||
{ |
|||
|
|||
|
|||
/// <summary>
|
|||
/// 淘宝查询按钮点击
|
|||
/// </summary>
|
|||
public void StartTaoBaoSearch() |
|||
{ |
|||
if (!btn_searchItems.IsEnabled) |
|||
return; |
|||
|
|||
|
|||
btn_searchItems.IsEnabled = false; |
|||
searchLoding.Visibility=Visibility.Visible; |
|||
|
|||
Task.Factory.StartNew(() => |
|||
{ |
|||
try |
|||
{ |
|||
List<SearchItemModelExt> totalItems = new List<SearchItemModelExt>(); |
|||
|
|||
for (int i = 1; i <= 5; i++) |
|||
{ |
|||
|
|||
//等待页面加载完成
|
|||
while (!DoJavaScript("return $(document.body).html();").isOk) |
|||
{ |
|||
Thread.Sleep(100); |
|||
} |
|||
|
|||
|
|||
//切换到当前页
|
|||
int totalPage = (int)DoJavaScript("return $(\"#mainsrp-pager li[class*=item]\").length").result; |
|||
if (totalPage > i) |
|||
{ |
|||
DoJavaScript($"$($(\"#mainsrp-pager li[class*=item]\")[{i}]).find(\"a\")[0].click()"); |
|||
Thread.Sleep(500); |
|||
} |
|||
|
|||
|
|||
//等待页面加载完成
|
|||
while (!DoJavaScript("return $(document.body).html();").isOk) |
|||
{ |
|||
Thread.Sleep(100); |
|||
} |
|||
|
|||
while (DoJavaScript(@"return $(""#mainsrp-pager li[class='item active']"")[0].innerText").result?.ToString() != i.ToString()) |
|||
{ |
|||
Thread.Sleep(100); |
|||
} |
|||
|
|||
//获取当前页面的所有商品信息
|
|||
|
|||
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,html:$(this).html()}); |
|||
|
|||
}); |
|||
return ids;");
|
|||
|
|||
List<SearchItemModelExt> itemHtmls = Newtonsoft.Json.JsonConvert.DeserializeObject<List<SearchItemModelExt>>(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); |
|||
|
|||
Thread.Sleep(2000); |
|||
} |
|||
} |
|||
catch (Exception ex) |
|||
{ |
|||
|
|||
} |
|||
finally |
|||
{ |
|||
Application.Current.Dispatcher.Invoke(() => { |
|||
|
|||
btn_searchItems.IsEnabled = true; |
|||
searchLoding.Visibility = Visibility.Collapsed; |
|||
}); |
|||
} |
|||
}); |
|||
} |
|||
|
|||
} |
|||
} |
Loading…
Reference in new issue