提交 63f45184 authored 作者: 梁业锦's avatar 梁业锦 💬

修改adidas爬虫的BUG

上级 c1cfd468
......@@ -8,6 +8,8 @@ import com.diaoyun.zion.master.util.TranslateHelper;
import net.sf.json.JSONObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
......@@ -33,6 +35,7 @@ public class AdidasSpider implements IItemSpider {
/**
* Adidas 数据爬虫
*
* @param targetUrl 接收的商品详情路径
* @return 格式化与翻译后的 Json 数据
*/
......@@ -55,6 +58,7 @@ public class AdidasSpider implements IItemSpider {
/**
* 格式化返回数据
*
* @param content 主要的页面数据
* @return 格式化后的数据
*/
......@@ -81,38 +85,29 @@ public class AdidasSpider implements IItemSpider {
// 解析为 Document 对象
Document document = Jsoup.parse(content);
// 获取颜色(型号)
List<String> colorNoList = document.select("div[class=pdp-color events-color-close]")
.select("ul").select("li").eachAttr("code");
// 获取价格
String fullPrice = document.select("input[id=salePrice]").attr("value");
String originalFullPrice = exchangeRate(fullPrice);
// 获取尺码
List<String> pSizeList = document.select("div[class=overview product-size]")
.select("ul").select("li").eachText();
String originalFullPrice = document.select("input[id=salePrice]").attr("value");
originalFullPrice = exchangeRate(originalFullPrice);
//////////////////////////////////// 获取商品基本信息 ////////////////////////////
itemInfo.setShopName("Adidas");
itemInfo.setShopUrl("https://www.adidas.com");
itemInfo.setItemId(pId);
itemInfo.setTitle(document.select("input[id=itemTitle]").attr("value"));
String colorNo = document.select("input[id=itemCode]").attr("value");
itemInfo.setTitle(colorNo);
itemInfo.setPic(document.select("input[id=shoppingcartpic]").attr("value"));
//////////////////////////////////// 获取商品基本信息End /////////////////////////
//////////////////////////////////// 获取商品颜色属性 ////////////////////////////
for (String colorNo : colorNoList) {
Elements colorEle = document.select("ul[id=itemColor]").select("li");
String targetUrl = "https://www.adidas.com.cn/item/othercolor?itemCode=" + pId;
String colorContent = HttpClientUtil.getContentByUrl(targetUrl, PlatformEnum.ADIDAS.getValue());
for (Element colorElement : colorEle) {
Document colorDoc = Jsoup.parse(colorContent);
String color = colorDoc.select("input[id=colorDisPaly]").attr("value");
String imgUrl = colorDoc.select("input[id=shoppingcartpic]").attr("value");
String color = colorElement.attr("code");
String imgUrl = colorElement.select("img").attr("lazy-src");
ProductProp productPropColor = new ProductProp();
productPropColor.setPropId(colorNo);
productPropColor.setPropId(color);
productPropColor.setPropName(color);
productPropColor.setImage(imgUrl);
propSet.add(productPropColor);
......@@ -125,14 +120,13 @@ public class AdidasSpider implements IItemSpider {
}
//////////////////////////////////// 获取商品颜色属性 END ////////////////////////////////////////////
for (int i = 0; i < pSizeList.size(); i++) {
Elements sizeEles = document.select("div[class=overview product-size]").select("li");
for (Element sizeEle : sizeEles) {
String size = sizeEle.attr("dispalySize");
///////////////////////// 获取商品尺码属性 ////////////////////
String sizeNo = pSizeList.get(i);
String size = sizeNo;
ProductProp productPropSize = new ProductProp();
productPropSize.setPropId(sizeNo);
productPropSize.setPropId(size);
productPropSize.setPropName(size);
sizePropSet.add(productPropSize);
if (productPropSet.get("尺码") == null) {
......@@ -145,7 +139,7 @@ public class AdidasSpider implements IItemSpider {
///////////////////////// 获取商品尺码属性 END////////////////////
// 库存对应的id(颜色id + 尺码id)
String skuStr = ";" + colorNo + ";" + pSizeList.get(i) + ";";
String skuStr = ";" + colorNo + ";" + size + ";";
//////////////////////////////////// 获取库存 ////////////////////////////////////////////
// 设置:商品包含库存信息
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论