电商API接口|Javascript抓取京东、淘宝商品数据

图片

“ 不知怎么建站?就找怎么建站! 

背景:

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接口

  1. 通过分类查询京东、淘宝的商品,比如搜索“电子产品”,获取到电子产品的列表

  2. 通过JavaScript操作页面dom元素,获取到商品信息数组

  3. 通过在线工具将json数组转成excel文件

  4. 处理图片地址,包裹上img标签,通过浏览器加载并下载图片

    //img13.360buyimg.com/n7/jfs/t1/181788/14/25091/44594/63c0c017F11c3c118/4521648b22e0dd3a.jpg 
    1. 原图片

    2. 将链接中的n7改成n1(尺寸变大),并且加上img标签

      <img src=https://img13.360buyimg.com/n1/s450x450_jfs/t1/181788/14/25091/44594/63c0c017F11c3c118/4521648b22e0dd3a.jpg />
    3. 将图片下载到本地

  5. 将生成的excel文件数据和EDI网站商品数据合并

  6. 将商品图片上传到服务器

  7. 手动给每个商品添加商品详情,这个是主要的工作量

这种方式主要有两个缺点:

  1. 列表获取不到商品详情图片,需要手动去抓取

  2. 过程比较繁琐,有很多需要手动操作的地方

这几天优化后的方法:

获取到的商品信息如下:

图片

  1. 通过分类查询京东、淘宝的商品,比如搜索“电子产品”,获取到电子产品的列表。将首图带有京东Logo的商品去掉,留下符合要求的商品

    图片

  2. 通过JavaScript操作页面dom元素,获取到除了商品详情以外的完整的商品信息

    let temp = []let img_dir = 'dzcp'var 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 src="+img_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_dir+img_file,        //img_url:img_url,        img_tag:img_tag    })})copy(temp)console.log(temp)
  3. 通过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;charset=utf-8,\ufeff' + encodeURIComponent(str);     // 通过创建a标签实现     const link = document.createElement("a");     link.href = uri;     // 对下载的文件命名     link.download =  `${name + '.xlsx'}`;     link.click();}jsonToExcel(temp, "商品链接,标题,商品价格,分类树,分类,图片地址,图片标签,商品详情")

    通过执行jsonToExcel函数获取到的excel文件:

    图片

  4. 通过浏览器将图片下载到本地,具体的操作方法就是将第二步中获取到的img标签,放到一个网页中加载图片,另存为

  5. 将生成的excel文件数据和EDI网站商品数据合并

  6. 将商品图片上传到服务器

  7. 手动给每个商品添加商品详情,这个是主要的工作量

    详情图片也分为两种,一种是在img标签中的

    图片

    另外一种是在css属性background中的,这种相对来说比较麻烦,要一张一张复制

    图片

这样一来,比较麻烦的事情只有一件了:

  1. 列表获取不到商品详情图片,需要手动去抓取

这个问题也找到了很好的解决方案

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/623559.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

11.云原生分布式数据库之TIDB

云原生专栏大纲 文章目录 为什么使用TIDB后端视角运维视角基础架构视角 TiDB Operator 简介软件版本要求部署tidbTIDB工具helm常用命令TIDB学习推荐资料 为什么使用TIDB 从后端视角、运维视角和基础架构视角来看&#xff0c;使用 TiDB 作为数据库系统可以获得分布式架构、高可…

学习Java API(二):基础知识点一文通✅

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 文章目录 推荐阅读正则表达式正则表达式语法捕获组和分组matches 和 lookingAt 方法split方法r…

LeeCode前端算法基础100题(20)找出字符串中第一个匹配项的下标

一、问题详情: 给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1 。 示例 1: 输入:haystack = "sadbutsad", needle = "s…

安全生产管理平台——革新传统安全生产管理方式,重塑企业安全文化

安全生产管理在现代企业中占据着至关重要的地位。传统的安全生产管理方式虽然在一定程度上能够保障企业的生产安全&#xff0c;但随着企业规模的不断扩大和生产环境的日益复杂&#xff0c;其局限性也愈发凸显。而安全生产管理平台的出现&#xff0c;正是为了解决这一问题。 平台…

从六西格玛到DFSS:提升企业创新能力的关键方法——张驰咨询

DFSS&#xff08;Design for Six Sigma&#xff0c;即六西格玛设计&#xff09;是一种结合了六西格玛思想和创新设计方法的质量管理方法。它的目标是在产品或服务的设计阶段&#xff0c;通过优化设计过程和减少变异性&#xff0c;以确保产品或服务达到高质量水平&#xff0c;满…

Linux多网卡绑定实现负载均衡详解

将多块网卡绑定同一IP地址对外提供服务&#xff0c;可以实现高可用或者负载均衡。直接给两块网卡设置同一IP地址是不可以的。通过 bonding&#xff0c;虚拟一块网卡对外提供连接&#xff0c;物理网卡的被修改为相同的MAC地址。 目录 1、bond的作用 2、Bonding聚合链路工作模…

反射助你无痛使用Semantic Kernel接入离线大模型

本文主要介绍如何使用 llama 的 server 部署离线大模型&#xff0c;并通过反射技术修改 Semantic Kernel 的 OpenAIClient 类&#xff0c;从而实现指定端点的功能。最后也推荐了一些学习 Semantic Kernel 的资料&#xff0c;希望能对你有所帮助。 封面图片&#xff1a; Dalle3 …

软信天成:数据安全管理解决方案分享

近年来&#xff0c;随着数据环境日趋复杂多变和潜在的数据隐私泄露风险潜伏&#xff0c;如何确保企业数据安全已成为众多企业亟待面对与妥善处理的重要问题。 为了应对这一严峻的现实挑战&#xff0c;软信天成凭借专业的知识体系和丰富的实战经验积累&#xff0c;总结出了一套…

Java多线程并发篇----第十四篇

系列文章目录 文章目录 系列文章目录前言一、ReadWriteLock 读写锁二、共享锁和独占锁三、重量级锁(Mutex Lock)四、轻量级锁前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站,这篇文章男女通用,看懂了就去分享给…

Spring MVC中的一些常用注解

目录 RequestMapping 实现路由映射 限制请求方式 PathVariable 从url中获取变量的值 更改绑定参数的名字 RequestParam 可以传递集合 更改绑定参数的名字 可修改是否为必传参数 RequestBody 获取请求正文的内容 可修改是否为必传参数 RequestPart 可以支持上传…

new mars3d.layer.GeoJsonLayer({实现图标点billboard贴模型聚合效果

说明&#xff1a; 1.【mars3d】的依赖库cesium本身是不支持贴地/贴模型操作的 2.sdk内部异步计算了数据的贴地/高度值之后&#xff0c;更新到图层上实现贴地/贴模型效果的 3.相关的示例链接&#xff1a; 1.功能示例(Vue版) | Mars3D三维可视化平台 | 火星科技 4.相关的计算…

【Python数据可视化】matplotlib之绘制三维图形:三维散点图、三维柱状图、三维曲面图

文章传送门 Python 数据可视化matplotlib之绘制常用图形&#xff1a;折线图、柱状图&#xff08;条形图&#xff09;、饼图和直方图matplotlib之设置坐标&#xff1a;添加坐标轴名字、设置坐标范围、设置主次刻度、坐标轴文字旋转并标出坐标值matplotlib之增加图形内容&#x…

精确掌控并发:滑动时间窗口算法在分布式环境下并发流量控制的设计与实现

这是《百图解码支付系统设计与实现》专栏系列文章中的第&#xff08;15&#xff09;篇&#xff0c;也是流量控制系列的第&#xff08;2&#xff09;篇。点击上方关注&#xff0c;深入了解支付系统的方方面面。 上一篇介绍了固定时间窗口算法在支付渠道限流的应用以及使用redis…

消息的发送与接收

消息的发送与接收 消息的发送与接收不仅仅是在于聊天功能的实现。其实还有很多种情况也算"消息的发送与接收"。而且我们还可以通过多种方法去实现。我们可以基于实际情况来选择。 WebSocket实现 node做后端。找了好多&#xff0c;前端页面总是用到了jQuery&#x…

lvgl简介

LVGL&#xff08;Light and Versatile Graphics Library&#xff09;是一个开源的图形用户界面库&#xff0c;旨在提供轻量级、可移植、灵活和易于使用的图形用户界面解决方案。 它适用于嵌入式系统&#xff0c;可以在不同的操作系统、微控制器和图形加速器上运行。LVGL的核心…

1.go安装及相关配置

目录 概述下载基本命令Go build环境设置 结束 概述 下载 官网速递 选择 1.20.x 一个是因为是次新版本&#xff0c;另一个&#xff0c;mac 系统是 10.13.6 &#xff0c;1.20.x 是最后一个支持此版本的。 环境变量 GOROOT go的安装目录(将go安装到哪里 which go、cat /etc/p…

高并发IO底层原理

1 概述 IO底层原理是隐藏在Java编程知识之下的基础知识&#xff0c;是开发人员必须掌握的基本原理。本文从操作系统的底层原理入手&#xff0c;通过图文的方式为大家深入剖析高并发IO的底层原理&#xff0c;并介绍如何通过设置来让操作系统支持高并发。 2 IO读写的基本原理 为…

文件模块常用api

文件模块常用api 文件夹常用操作 文件夹操作 fs.mkdir fs.rmdir 需要是空目录 题目&#xff1a;递归删除目录* 串行/并行删除文件*

【电商API】DIY网络爬虫收集电商数据

DIY网络爬虫收集电商数据 网络爬虫是最常见和使用最广泛的数据收集方法。DIY网络爬虫确实需要一些编程知识&#xff0c;但整个过程比一开始看起来要简单得多。 当然&#xff0c;爬虫的有效性取决于许多因素&#xff0c;例如目标的难度、网站方的反爬虫措施等。如果将网络抓取用…

机器学习根据金标准标记数据-九五小庞

根据金标准标记数据是一种在机器学习和数据科学中常见的操作&#xff0c;主要用于评估分类模型的性能。其基本步骤如下&#xff1a; 收集数据&#xff1a;首先需要收集相关领域的原始数据&#xff0c;这些数据通常来自不同的来源和渠道。数据清洗和预处理&#xff1a;在这一步…