导视设计网站推荐,wordpress速度插件,seo工具优化,中企动力企业邮箱手机登录入口“ 不知怎么建站#xff1f;就找怎么建站#xff01; ”
背景#xff1a;
EDI许可证网站和ICP许可证网站需要有丰富的商品数据来应付EDI、ICP许可证下证审核。下面介绍的这种方法是我之前主要的抓取数据的方法#xff0c;大概用了一年多。这几天又对这个方法进行了一些优… “ 不知怎么建站就找怎么建站 ”
背景
EDI许可证网站和ICP许可证网站需要有丰富的商品数据来应付EDI、ICP许可证下证审核。下面介绍的这种方法是我之前主要的抓取数据的方法大概用了一年多。这几天又对这个方法进行了一些优化改进。
之前用的方法 let temp []var lists $(#J_goodsList li.gl-item)$.each(lists,function(idx,item){ temp.push({ id:$(item).data(sku), goods_img:$(item).find(img).attr(src), goods_name:$(item).find(.p-name em).text(), market_price:$(item).find(.p-price i).text(), })})console.log(temp) 电商API接口 通过分类查询京东、淘宝的商品比如搜索“电子产品”获取到电子产品的列表 通过JavaScript操作页面dom元素获取到商品信息数组 通过在线工具将json数组转成excel文件 处理图片地址包裹上img标签通过浏览器加载并下载图片 //img13.360buyimg.com/n7/jfs/t1/181788/14/25091/44594/63c0c017F11c3c118/4521648b22e0dd3a.jpg 原图片 将链接中的n7改成n1(尺寸变大)并且加上img标签 img srchttps://img13.360buyimg.com/n1/s450x450_jfs/t1/181788/14/25091/44594/63c0c017F11c3c118/4521648b22e0dd3a.jpg / 将图片下载到本地 将生成的excel文件数据和EDI网站商品数据合并 将商品图片上传到服务器 手动给每个商品添加商品详情这个是主要的工作量
这种方式主要有两个缺点 列表获取不到商品详情图片需要手动去抓取 过程比较繁琐有很多需要手动操作的地方
这几天优化后的方法
获取到的商品信息如下 通过分类查询京东、淘宝的商品比如搜索“电子产品”获取到电子产品的列表。将首图带有京东Logo的商品去掉留下符合要求的商品 通过JavaScript操作页面dom元素获取到除了商品详情以外的完整的商品信息 let temp []let img_dir dzcpvar lists $(#J_goodsList li.gl-item)$.each(lists,function(idx,item){ var img_url $(item).find(.p-img img).attr(src) img_url img_url.indexOf(http)0 ? https:img_url : img_url var index img_url.lastIndexOf(/) var img_file img_url.substring(index) //将n7改成n1(图片尺寸变大)并包裹上img标签 var img_tag img srcimg_url.replace(n7,n1) / temp.push({ id:https://item.jd.com/$(item).data(sku).html, name:$(item).find(.p-name a em).text().replace(/\s*/g,), market_price:$(item).find(.p-price i).text(), path:391_394_, cateid:394, img_file:img_dirimg_file, //img_url:img_url, img_tag:img_tag })})copy(temp)console.log(temp) 通过JavaScript自动将获取到的商品信息转成excel function jsonToExcel(data, head, name template) { let str head ? head \n : ; data.forEach(item { // 拼接json数据, 增加 \t 为了不让表格显示科学计数法或者其他格式 for(let key in item) { str ${str item[key] \t}, } str \n }); console.log(str) // encodeURIComponent解决中文乱码 const uri data:text/csv;charsetutf-8,\ufeff encodeURIComponent(str); // 通过创建a标签实现 const link document.createElement(a); link.href uri; // 对下载的文件命名 link.download ${name .xlsx}; link.click();}jsonToExcel(temp, 商品链接,标题,商品价格,分类树,分类,图片地址,图片标签,商品详情) 通过执行jsonToExcel函数获取到的excel文件 通过浏览器将图片下载到本地具体的操作方法就是将第二步中获取到的img标签放到一个网页中加载图片另存为 将生成的excel文件数据和EDI网站商品数据合并 将商品图片上传到服务器 手动给每个商品添加商品详情这个是主要的工作量 详情图片也分为两种一种是在img标签中的 另外一种是在css属性background中的这种相对来说比较麻烦要一张一张复制
这样一来比较麻烦的事情只有一件了 列表获取不到商品详情图片需要手动去抓取
这个问题也找到了很好的解决方案