前言

先查看rebots协议,不让爬的数据咱不动。
以马来西亚站点为例:https://www.lazada.com.my/robots.txt

处理逻辑

如果从首页进入,然后查看请求商品数据,请求参数中都有appKey和sign,也就是sign不破解出来是万万拿不到数据的,而且如果sign错误了一次,再请求的时候jsv参数就会跟着变,造成很难找到固定的规律。但是,首页的分类点击进入的页面是不需要sign的,这个就方便太多了。

商品分类

商品列表页使用这个(或者直接使用首页也可以):https://pages.lazada.com.my/wow/i/my/LandingPage/lp-collection-detail-new,左上角打开就是全部分类,get请求直接进行Document解析即可。

商品列表

点击商品分类,进入的页面是分页的商品列表信息,完全没有加密逻辑,直接使用请求参数访问即可。参数也只有一个页码,比如:https://www.lazada.com.my/mobile-phone-cases/?ajax=true&page=1

其他站点

新加坡:https://www.lazada.sg/
马来西亚:https://pages.lazada.com.my/
印度尼西亚:https://www.lazada.co.id/
菲律宾:https://www.lazada.com.ph/
泰国:https://www.lazada.co.th/
越南:https://www.lazada.vn/

Java测试代码

其实就一个get请求,也没有什么好写的,但是因为篇幅不够csdn总是给提示,让增加一些内容,就把这个代码写上吧,然后也进行一下数据解析。以上面给出的链接为例:

     String url = "https://www.lazada.com.my/mobile-phone-cases/?ajax=true&page=1";String result = Jsoup.connect(url).method(Method.GET).ignoreContentType(true).timeout(30000).execute().body();JSONObject jsonResult = JSON.parseObject(result);JSONArray array = jsonResult.getJSONObject("mods").getJSONArray("listItems");for(int i = 0; i < array.size(); i++) {System.out.print("商品名称:" + array.getJSONObject(i).getString("name"));System.out.println("显示的价格:" + array.getJSONObject(i).getString("priceShow"));}

打印第一页的上面名称和价格,如下:

商品名称:CrashStar Shockproof Clear Phone Case For iPhone 13 12 11 Pro Max Mini XS XR X 8 7 Plus + SE 2020 Thick Silicone Phone Casing Transparent Hard Phone Cover Shell Top Seller显示的价格:RM7.82
商品名称:CrashStar Official Liquid Silicone Phone Case With Logo For iPhone 13 12 11 Pro Max Mini XS XR X 8 7 6 6S Plus + SE 2020 Soft Shockproof Phone Casing With Velvet Inside Phone Cover Shell Top Seller显示的价格:RM8.41
商品名称:Xiaomi Redmi 9T 5 5a 6 6a 7 7a 8 8a 9 9a 9c Note 4 4x 5 6 7 8 9 10 Pro 9s 10s Poco M3 Pro Mi 9t Pro K20 Pro Armor Shockprood Hard Phone Stand Case Casing Cover显示的价格:RM5.70
商品名称:KUULAA Waterproof Phone Pouch Underwater Phone Bag Case Swimming Diving Phone Case Bag for Xiaomi iPhone Huawei Samsung显示的价格:RM6.97
商品名称:For Samsung Galaxy A50s / A50 / A30s Case, [Work with Magnetic Car Mount] 360 Degree Rotating Magnetic Suction Metal Ring Kickstand Phone Case Shockproof Drop Protection Soft TPU Casing Back Cover显示的价格:RM10.87
商品名称:Cute Cartoon Linabell Phone Case For Huawei Nova 7i Huawei Nova 3i Nova 5T Nova 6 SE Nova 7 SE Nova 4e Huawei P30 Lite Casing Soft Silicone Full Cover Camera Protect Case显示的价格:RM5.60
商品名称:(Wallet Flip Bag) Vivo V23 Y21T Y31T Y33s V23e Y76 Y31 Y51a Y20/Y20s D/Y12s/V5/V5s/Y95/Y91/Y91i/Y93/V9/Y85/Y12A/Y12D/Y20s G/Y81/Y81i/ Y91c Y1s Y66 Y69 Y65 V11 V11i V7 Plus Mercury Card Wallet Flip Pouch Bag显示的价格:RM7.99
商品名称:(FREE TEMPERED GLASS) HUAWEI HONOR P50 Pro / Nova 9 / 50 / Nova 8i / 50 Lite / Mate 40 / Y7A / Nova 3i / Y9 Prime 2019 / Y9S / Mate 30 / Nova 7 / P30 / P40 / Y5 / Y6P / Y7P / 9X Lite / 9A / V20 / Clear Shockproof Transparent Soft TPU Case显示的价格:RM5.70
商品名称:For Huawei Nova 5T Case, Fashion Ultra Thin Candy Color Sandstone Matte Soft TPU Silicone Case Slim Rubber Plush Phone Casing Back Cover显示的价格:RM8.56
商品名称:For Huawei Nova 9 / Nova 9 SE / Honor 50 Magnetic Case 360 Front+Back double-sided 9H Tempered Glass Case For Huawei Nova 9 / Nova 9 SE / Honor 50 Camera Lens Protective Metal Bumper Case显示的价格:RM23.20
商品名称:CrashStar Diamond Lens Shockproof Phone Case For iPhone 13 Pro Max 12 Pro Max 11 Pro Max Transparent Clear Hard Phone Casing With Full Cover Lens Camera Protection Cover Shell Top Seller显示的价格:RM19.70
商品名称:												

Lazada数据获取逻辑相关推荐

  1. React hook 中的数据获取

    相关说明: 对于hook相关词不翻译,感觉翻译后怪怪的. effect hook 效果钩子,用于执行一些副作用例如获取数据 . state hook 状态钩子. 使用----------- 和 --- ...

  2. 干货 | 万字长文全面解析GraphQL,携程微服务背景下的前后端数据交互方案

    作者简介 古映杰,携程研发高级经理,负责前端框架和基础设施的设计.研发与维护.开源项目react-lite和react-imvc作者. 前言 随着多终端.多平台.多业务形态.多技术选型等各方面的发展, ...

  3. usestate中的回调函数_React 中获取数据的 3 种方法:哪种最好?

    译文 | https://cloud.tencent.com/developer/article/1535913 原文 | https://dmitripavlutin.com/ 在执行 I/O 操作 ...

  4. orm提取指定列_使用ORM提取数据很容易! 是吗?

    orm提取指定列 介绍 几乎所有系统都以某种方式与外部数据存储一起运行. 在大多数情况下,它是一个关系数据库,并且通常将数据获取委托给某些ORM实现. ORM涵盖了很多例程,并且带来了一些新的抽象作为 ...

  5. 使用ORM提取数据很容易! 是吗?

    介绍 几乎任何系统都以某种方式与外部数据存储一起运行. 在大多数情况下,它是一个关系数据库,并且数据获取通常委托给某些ORM实现. ORM涵盖了很多例程,并带来了一些新的抽象作为回报. Martin ...

  6. 使用react实现select_使用 Hooks 优化 React 组件

    奇技指南 本文内容主要是我之前分享的文字版,若想看重点的话可以看之前的Slide: https://ppt.baomitu.com/d/75fc979a 本文作者奇舞团前端开发工程师李喆明. 需求描述 ...

  7. React 的慢与快:优化 React 应用实战

    本文讲的是React 的慢与快:优化 React 应用实战, React 是慢的.我的意思是,任何中等规模的 React 应用都是慢的.但是在开始找备选方案之前,你应该明白任何中等规模的 Angula ...

  8. ASP.NET MVC框架(第一部分)

    [原文地址]ASP.NET MVC Framework (Part 1) [原文发表日期] Tuesday, November 13, 2007 3:45 AM 两个星期前, 我在博客里讨论了ASP. ...

  9. SAP工具箱 数据同步平台(九 与PO整合)

    点击蓝字 关注我们 一 前言 数据同步平台是在ABAP中开发的一个数据同步工具,类似于LTRC,通过配置实现任意两个数据库的数据同步(ABAP需要配置相关的外部数据库连接). 数据同步平台的底层通过调 ...

最新文章

  1. Delphi Qjson
  2. python语言打印菱形_Python 实现打印单词的菱形字符图案
  3. Java中Integer类型的整数值的大小比较
  4. rancher 使用部分运维操作
  5. BM求线性递推模板(杜教版)
  6. OpenJDK8和OpenJDK8u的差异
  7. Atitit jfugue midi make tour attilx sumup 目录 1.1. Jyepu prob not support ,gazi nonge map trans支持简谱解决
  8. arcgis两点之间连线_three3D地图设置两点之间的连线
  9. QQ登录界面测试用例设计:
  10. wifi6路由器使用tcpdump抓包
  11. 【产品经理】产品经理进阶之路-大纲
  12. QEMUKVM 虚拟机使用实例
  13. vSphere7.0添加第三方驱动
  14. docker MySQL8
  15. Dynamic GCN:Dynamic GCN: Context-enriched Topology Learning for Skeleton-based Action Recognition
  16. (Linux)进程间通信
  17. 日活四千万的汤姆猫游戏家族,用AWS云服务打造“无感”用户体验
  18. 利用 FFMPEG 批量提取指定起止时间视频片段
  19. 你跳槽怎样考虑可持续性发展
  20. Eucalyptus首席财务官王宁:有理想,就去追

热门文章

  1. Java图形window界面创建一个文本框和一个按钮awt容器
  2. DayDreamInGIS ArcGIS-AddIn 数据处理工具使用说明(裁剪工具/字段修改/要素合并/属性筛选/空间连接)
  3. Cadence制作热风焊盘
  4. [Docker/Windows] error during connect: In the default daemon configuration on Windows
  5. 程序人生:月薪12K,高学历全职宝妈被骗6000元后幡然醒悟,转行测试逆风翻盘...
  6. android 修改锁屏密码提示
  7. java - 解决idea代码自动提示功能消失的问题
  8. 【花雕学AI】11:ChatGPT与New Bing的横向比较与多维度对比测试
  9. 苹果手机数据线充不了电_严选|同时充4台手机的充电宝!容量大充电快、自带数据线,还能显示电量|数据线|电池|手机|安卓|硅胶...
  10. java对象数组_Java中对象数组的使用方法详解