修复商品提取获取不到商品详情页面问题

This commit is contained in:
wule committed 2025-12-13 11:49:45 +08:00
1 parent 6d22729cff
commit 96cd79f62c
1 file changed
+77 -13
@@ -73,8 +73,9 @@ namespace TemuKJD.PDDForms.ShopForms
var prod_detail_rst = GetPddProdDetail(sourceShop, sourceProdId.ToString(), commitId);
JObject prod_detail_obj = JObject.Parse(prod_detail_rst);
detail_json = JsonHelper.SerializeObject(prod_detail_obj["result"]);
product = JsonHelper.DeserializeJsonToObject<PDDProductDetailInfo>(detail_json);
if (product == null)
if (product == null || detail_json.Length < 10)
{
OnInfoReceived("商品获取失败!商品数据格式获取失败!");
return;
@@ -183,19 +184,82 @@ namespace TemuKJD.PDDForms.ShopForms
OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message);
return;
}
//if (decoration != null && decoration_json.ParseToString().Length < 20)
//{
// try
// {
// var prod_detail_decoration_rst = GetPddProdDetail(sourceShop, sourceProdId.ToString(), commitId);
// }
// catch (Exception ex)
// {
// OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message);
// return;
// }
//}
if (decoration != null && decoration_json.ParseToString().Length < 20)
{
//try
//{ // 获取另一组详情数据,结构和主详情不一样无法通用
// var prod_detail_decoration_rst = GetPddProdOnShopDetail(sourceShop, sourceProdId.ToString(), commitId);
// JObject prod_detail_decoration_obj = JObject.Parse(prod_detail_decoration_rst);
// foreach (JObject ob in prod_detail_decoration_obj["result"]["carousel_gallery"])
// {
// }
//}
//catch (Exception ex)
//{
// OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message);
// return;
//}
PDDProdDecorationCommitParam decorationParam = new PDDProdDecorationCommitParam();
decorationParam.goods_id = product.goods_id;
decorationParam.goods_commit_id = commitId.ParseToLong();
decorationParam.preview_key = "";
decorationParam.decoration_floor_list = new List<decoration_floor_param>();
foreach (var gallary in product.galleries)
{
if (gallary.type != 2)
continue;
var floor_param = new decoration_floor_param();
//floor_param.floor_id = 0; // floorItem.floor_id;
floor_param.type = "image"; // floorItem.type;
floor_param.content_list = new List<decoration_content_param>();
//foreach (var c in floorItem.content_list)
{
var decorationContentParam = new decoration_content_param()
{
//file_id = c.file_id,
img_url = gallary.url, //c.img_url,
//height = c.height,
//text = c.text,
//text_module_details = null,
//width = c.width,
};
//try { decorationContentParam.text_module_details = JsonHelper.DeserializeJsonToObject<text_module_detail_param>(JsonHelper.SerializeObject(c.text_module_details)); }
//catch (Exception ex) { }
floor_param.content_list.Add(decorationContentParam);
}
decorationParam.decoration_floor_list.Add(floor_param);
}
var addDecorationRst = save_decoration(shop, decorationParam, product.goods_id.ParseToString(), commitId);
Thread.Sleep(Randomx.GetId(10, 50));
// 第二次获取详情图
try
{
var prod_decoration_rst = GetPddProdDecoration(sourceShop, sourceProdId.ToString(), commitId);
if (!prod_decoration_rst.Contains("\"success\":true"))
{
var errMsg = BaseRegex.GetStringJson(ref prod_decoration_rst, "error_msg");
if (string.IsNullOrEmpty(errMsg))
errMsg = prod_decoration_rst;
OnInfoReceived("商品获取失败!商品详情图获取失败!" + errMsg);
return;
}
JObject prod_decoration_obj = JObject.Parse(prod_decoration_rst);
if (!prod_decoration_obj["result"].IsNullOrEmpty())
decoration_json = JsonHelper.SerializeObject(prod_decoration_obj["result"]);
decoration = JsonHelper.DeserializeJsonToObject<PDDProductDecorationInfo>(decoration_json);
}
catch (Exception ex)
{
OnInfoReceived("商品获取失败!商品详情图获取失败!" + ex.Message);
return;
}
}
if (decoration == null || decoration_json.ParseToString().Length < 20)
{