展开

关键词

爬取京东手机信息

爬虫案例 学习了HttpClient和Jsoup,就掌握了如何抓取数据和如何数据,接下来,我们做一个小练习,把京东的手机数据抓取下来。 主要目的是HttpClient和Jsoup的学习。 System.out.println(newUrl); String html = this.httpUtils.getHtml(newUrl); //页面数据 保存数据到数据库中 this.parseHtml(html); } System.out.println("执行完毕"); } //页面 void parseHtml(String html) throws Exception { //System.out.println(html); //使用jsoup页面 _" + skuId; String priceJson = this.httpUtils.getHtml(priceUrl); //

37620

Java实现爬取京东手机数据

项目没什么太难的地方,就是考验你对HTML源码的,层层,同标签选择器seletor进行元素筛选,再结合HttpCLient技术,成功把手机数据爬取下来。 // 使用HttpClient发起请求,获取响应 response = httpClient.execute(httpGet); // 响应 i = 1; i < 10; i=i+2) { String html = this.httpUtils.doGetHtml(url+i); // 页面 ; } /** * 页面,获取商品数据并存储 * @param html */ private void parse(String html) throws Exception { // HTML获取Document Document doc = Jsoup.parse(html); //

12820
  • 广告
    关闭

    什么是世界上最好的编程语言?丨云托管征文活动

    代金券、腾讯视频VIP、QQ音乐VIP、QB、公仔等奖励等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【微服务】150:什么是SKU和SPU?

    理清楚SPU和SKU的概念,同时分对SPU的数据表设计。 一、规格参数业务实现 1业务需求分 ? 昨天实现了规格参数组相关的业务,点击商品分类,可以查看到其对应的规格参数组信息。 面对这个问题有两种决方式: ①使用注@Colum 说明关键字字段是哪个一个即可,但是该方式若是有多个关键字需要一一说明。 ②配置文件中配置 也可以在yam文件中如图中配置。 SKU全称为Stock Keeping Unit,翻译过来就是库存量单位。 这种官方定义看起来好像挺难理的,我以某电商网站某品牌手机为例作个说明: ? 思考问题:上图是一个商品么? 而SKU才是具体的某个商品。 比如陶瓷黑、8G+128GB内存…等每一项都确定好之后的商品才是一个SKU。 通俗理就是我们购买订单页面对商品的详细说明,就是一个SKU。 每一个SKU的价格一般是不一样,我们购买的是SKU而不是SPU。 2SPU数据表设计分 在数据库中其被拆分成了两张表,我们具体做一个分: ?

    28030

    运营四十二章经(十二)---SKU库存量单位

    请你来简要分一下原因。 针对淘宝而言,SKU的注: 1、SKU是指一款商品,每款都有出现一个SKU,便于淘宝识别商品。 2、一款商品多色,则是有多个SKU,例:一件衣服,有红色、白色、蓝色,则SKU编码也不相同,如相同则会出现混淆,发错货。 4、在连锁零售门店中有时称单品为一个SKU(中文译为最小存货单位,英文全称为 stock keeping unit 简称SKU,定义为保存库存控制的最小可用单位,例如纺织品中一个SKU通常表示规格,颜色 ,款式) so: 1、该购物网站属于强促销类型,主打策略是推爆款,精选SKU,通过放大采购规模来降低成本,所以大部分商品是需要抢的定期爆款。 其次,因为这类购物平台的SKU有限,部分种草用户无法完成购买,常常流向竞品,所以也会向第三方商家开放

    7820

    2-2 SPU和SKU及MyBatisPlus自动生成

    2-2 SPU和SKU   商城系统中的商品信息肯定避免不了SPU和SKU这两个概念,本节就给大家详细介绍下这块的内容 1、掌握SKU和SPU关系 SPU = Standard Product Unit status`), KEY `updated` (`update_time`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='商品表'; 2.2 商品发布流程分 private List<Sku> skus; } @Data @AllArgsConstructor @NoArgsConstructor //MyBatisPlus表映射注 @TableName skuAttributes = skuAttributeService.queryList(id); return RespResult.ok(skuAttributes); } 4、商品发布 4.1 复合对象分 1)名字分 添加商品的时候,会将商品的属性传入后台,格式如下,如果把规格名字添加到名字中,那就是华为商城中的效果了,我们可以这么做,把属性成Map,然后每个属性值添加到商品名字中即可。

    65340

    mongodb 字符串查找匹配中$regex的用法

    manual/reference/operator/query/regex/#regex-case-insensitive 举个例子来说:现在有以下集合(官网的例子): { "_id" : 100, "sku " : "abc123", "description" : "Single line description." } { "_id" : 101, "sku" : "abc789", "description ( { sku: /adC/i } );等效于下面这种写法 db.collection.find( { sku: { $regex: 'abC', $options: 'i' } } ); 以上是个简单的应用 参数介绍: Option ===== Description 参数 i ====== 加了这个参数,表示不区分大小写 参数 m ===== 个人理这个参数是用来匹配value中有换行符(\n)的情形 " : "First line\nSecond line" } 此时可以分出m参数的使用场景: 应该是为了匹配字段value值中以某个字符开头(^),或者是某个字符结束($).即便value中包含换行符

    2.5K30

    商城项目-商品规格数据结构

    为了更准确描述商品及细分差别,抽象出两个概念:SPU和SKU,了一下: 1.1.SPU和SKU SPU:Standard Product Unit (标准产品单位) ,一组具有共同属性的商品集 SKU SKU才是具体要销售的商品,每一个SKU的价格、库存可能会不一样,用户购买的是SKU而不是SPU 1.2.数据库设计分 1.2.1.思考并发现问题 弄清楚了SPU和SKU的概念区分,接下来我们一起思考一下该如何设计数据库表 1.2.2.分规格参数 仔细查看每一种商品的规格你会发现: 虽然商品规格千变万化,但是同一类商品(如手机)的规格是统一的,有图为证: 华为的规格: ? 三星的规格: ? 1.2.3.SKU的特有属性 SPU中会有一些特殊属性,用来区分不同的SKU,我们称为SKU特有属性。如华为META10的颜色、内存属性。 不同种类的商品,一个手机,一个衣服,其SKU属性不相同。 我们的决方案是,采用json来保存整个规格参数模板,不需要额外的表,一个字符串就够了。 1.3.2.json结构分 先整体看一下: ?

    1.1K20

    格力与奥克斯空调在京东的选购指数(java爬虫案例-代码实现)

    一直被卡住了,最后通过一个HttpUnit(带JS器,可以爬取动态页面)。 Boot+Spring Data JPA和定时任务进行开发,HtmlUnit获取动态网页,Jsoup页面。 @Scheduled(fixedDelay = 11 * 2500) public void itemTask() throws Exception { //声明需要的初始地址 cat=737,794,870&ev=exbrand_3659&page=";//奥克斯 //按照页面对手机的搜索结果进行遍历 for (int i = 1; i ; } //页面,获取商品数据并存储 private void parse(String html) throws Exception { //html

    23120

    电商设计手册之基础商品信息

    本文分为如下五大模块: 需求分 架构设计 Spu和Sku的故事 数据模型设计 接口设计 第一篇我们主要看看一个入门的电商平台(B2C)如何去构建自己的基础商品信息,其实这个事情很简单,想想我们的现实生活 需求分 对于一个电商平台来讲,我们怎么理上面的简单示例呢? 商品详情接口 Temporal Service Golang 架构设计 通过上面的需求分,再加上之前的《电商设计手册之用户体系》中的用户体系和《支付开发,不得不了的国内、国际第三方支付流程》中的支付服务 但是呢,程序设计的巧妙之处就在于抽象能力,电商行业把goods_id进行了进一步的抽象,产生了Spu和Sku概念,在了Spu和Sku定义之前,我们还得了下销售属性的含义,举个例子便于理: 想想我们的现实生活 接着,我们来看看Spu和Sku定义: 名称 概念 释 Spu standard product unit 标准产品单位 goods_id剥离销售属性的部分,例如:小米8。

    60620

    电商设计手册之基础商品信息

    本文分为如下五大模块: 需求分 架构设计 Spu和Sku的故事 数据模型设计 接口设计 第一篇我们主要看看一个入门的电商平台(B2C)如何去构建自己的基础商品信息,其实这个事情很简单,想想我们的现实生活 需求分 对于一个电商平台来讲,我们怎么理上面的简单示例呢? 商品详情接口 Temporal Service Golang 架构设计 通过上面的需求分,再加上之前的《电商设计手册之用户体系》中的用户体系和《支付开发,不得不了的国内、国际第三方支付流程》中的支付服务 但是呢,程序设计的巧妙之处就在于抽象能力,电商行业把goods_id进行了进一步的抽象,产生了Spu和Sku概念,在了Spu和Sku定义之前,我们还得了下销售属性的含义,举个例子便于理: 想想我们的现实生活 接着,我们来看看Spu和Sku定义: 名称 概念 释 Spu standard product unit 标准产品单位 goods_id剥离销售属性的部分,例如:小米8。

    20120

    商城项目-商品修改

    2.2.查询SpuDetail接口 GoodsController 需要分的内容: 请求方式:GET 请求路径:/spu/detail/{id} 请求参数:id,应该是spu的id 返回结果:SpuDetail 2.3.查询sku 请求方式:Get 请求路径:/sku/list 请求参数:id,应该是spu的id 返回结果:sku的集合 GoodsController @GetMapping( 的库存stock也查询出来 public List<Sku> querySkuBySpuId(Long spuId) { // 查询sku Sku record = new Sku(); record.setSpuId(spuId); List<Sku> skus = this.skuMapper.select(record); for (Sku sku : skus 数据无法修改,因为有可能之前存在的SKU现在已经不存在了,或者以前的sku属性都不存在了。

    40530

    购物车需求分决方案

    目标1:说出品优购购物车的实现思路 目标2:运用Cookie存储购物车 目标3:编写购物车前端代码 目标4:运用Redis存储购物车 1.购物车需求分决方案 1.1需求分 用户在商品详细页点击加入购物车 购物车展示页面如下: 简单的可以理为每个商品的属性:颜色/尺码等信息(比如红色M码是一个SKU;红色L码又是一个SKU)。 当下已经被引申为产品统一编号的简称,每种产品均对应有唯一的SKU号。 针对电商而言,SKU有另外的注: 1、SKU是指一款商品,每款都有出现一个SKU,便于电商品牌识别商品。 2、一款商品多色,则是有多个SKU,例:一件衣服,有红色、白色、蓝色,则SKU编码也不相同,如相同则会出现混淆,发错货。 itemId=1369280&num=100 4.Redis存储购物车 4.1需求分 判断当前用户是否登陆,如果未登录采用Cookie存储,如果登录则采用Redis存储。

    9220

    商城项目-实现基本搜索

    2.实现基本搜索 2.1.页面分 2.1.1.页面跳转 在首页的顶部,有一个输入框: ? 没关系,接下来我们实现后台接口 2.2.后台提供搜索接口 2.2.1.controller 首先分几个问题: 请求方式:Post 请求路径:/search/page,不过前面的/search应该是网关的映射路径 决办法很简单,在leyou-search的application.yml中添加一行配置,json处理时忽略空值: spring: jackson: default-property-inclusion 2.3.3.多sku展示 2.3.3.1.分 接下来展示具体的商品信息,来看图: ? 这里我们可以发现,一个商品位置,是多个sku的信息集合。 所以决办法就是把ly记录到Vue实例: ? 然后刷新页面: ? 2.3.5.2.标题过长 标题内容太长了,已经无法完全显示,怎么办?

    15511

    JAVA网络爬爬学习之HttpClient+Jsoup

    jsoup URL 字符串 文件 使用dom方式遍历文档 使用选择器语法查找元素 Selector选择器概述 Selector选择器组合使用 Jsoup参考资料 爬虫案例 开发准备 可以使用字符串处理工具页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门html页面的技术。 jsoup 是一款Java 的HTML器,可直接某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。 jsoup的主要功能如下: 从一个URL,文件或字符串中HTML; 使用DOM或CSS选择器来查找、取出数据; 可操作HTML元素、属性、文本; 先加入依赖: <! 那么这里就必须要了spu和sku的概念 SPU = Standard Product Unit (标准产品单位) SPU是商品信息聚合的最小单位,是一组可复用、易检索的标准化信息的集合,该集合描述了一个产品的特性

    9120

    帕累托法则应用之品类规划

    帕累托分除了可以识别Top产品(抓重点)、尾巴产品(去尾巴),还可对比曲线斜率进行品类规划: 上图是两个服装品类帕累托图,横轴为累计SKU数量,纵轴为这些SKU的累计业绩(SKU按业绩从高到低排列) 牛仔长裤的帕累托曲线到末尾几乎水平,意味着你再次增加SKU供应很难带来更多业绩。而裙子每个SKU业绩贡献差异不大,边际收益相对高,再次增加SKU更有可能比牛仔长裤取得更多业绩。 所以理性的品类调整策略是:增加裙子款式供应,缩减牛仔长裤的SKU数量。 结合前面的文章,我们目前可以看到帕累托分已经有三种用法: 第一种,识别Top产品,对产品ABC分类,模型设置可参考采总此文。 但是尾部产品不能一刀切清除,还要考虑是否刚上市,没有足够的销售时间,或者这个产品对VIP客户特别重要,就需要结合RFM客户分模型进行滞销产品保留。

    12020

    电商---实现购物车功能

    2、利用 session 优点:用户禁用cookie,也可以购物 缺点:占用服务器资源,要考虑session失效的问题 3、利用数据库 优点:可以记录用户的购买行为,便于数据分用户的喜好, 购物车需求分 1、可以添加商品到购物车中 2、可以删除购物车中的商品 3、可以清空购物车 4、可以更新购物车的商品 5、可以结算 js代码 /** * Created by Administrator * @param {number} quantity 商品的数量 */ function item(sku, name, price, quantity){ this.sku = sku; ){//根据sku标示查找商品 //如果木有提供sku,则返回所有的item if(sku){ for(var i=0,l 0 : this.findItem(sku).quantity )), price = parseFloat((typeof this.findItem(sku) ===

    98040

    javaweb-爬虫-1-62

    .url 字符串 文件 使用dom方式遍历文档 元素中获取数据 使用选择器语法查找元素 Selector选择器概述 Selector选择器组合使用 5.爬虫案例 SPU和SKU Jsoup Jsoup方便 jsoup的主要功能如下: 1.从一个URL,文件或字符串中HTML; 2.使用DOM或CSS选择器来查找、取出数据; 3.可操作HTML元素、属性、文本; .url Jsoup ,但是往往不会这样用,因为实际的开发过程中,需要使用到多线程,连接池,代理等等方式,而jsoup对这些的支持并不是很好,所以我们一般把jsoup仅仅作为Html工具使用 字符串 先准备html文件 Jsoup可以直接文件,并封装为Document对象 @Test public void testJsoupHtml() throws Exception { // 文件 SKU=stock keeping unit(库存量单位) SKU即库存进出计量的单位,SKU是物理上不可分割的最小存货单元。例如红色苹果手机,就是一个sku ? Jsoup ?

    13730

    【微服务】163:搭建搜索微服务

    二、数据格式分 看到一个业务需求,首先要考虑的也就是数据格式分,捋一捋自己的思路: 前端数据:HTML标签,这里vue组件。 Java数据:需要哪些实体类? 页面中展示的一个商品数据就是一个SPU,SPU是多个SKU共有集。 那么SPU和SKU又是什么? 这个在第150天学习笔记中详细讲过,这里做一个简单的回顾: 一个确定的商品就是一个SKU,它的颜色,内存大小,价格都确定下来了。 但是仔细观察上述页面,选择商品大图下面的小图,商品会跟着变化,也就是SKU中的数据要实现动态变化。 所以我们需要的数据就是一个SPU,同时也需要包含SKU的信息。 2过滤数据 ? SKUS这个上述我们刚分过,展示给用户看的是一个SPU,但是其需要包含了SKU的数据,就是很多个SKU,当然这里使用json结构的字符串来表示的。

    24630

    Java爬虫及分布式部署

    html = EntityUtils.toString(response.getEntity(), "UTF-8"); System.out.println(html); } } 数据 text); } } 在jsoup中一共提供了两套API: 一套是采用原生的js的方式来获取dom中元素 需要程序员记住大量的js的原生的方法, 会大大提升学习的成本 一套是基于Css的选择器来完成 数据 parsePid(html); } } //此方法用来pid private static void parsePid(String html) throws pid Elements liEl = document.select("#J_goodsList>ul>li"); // 3. 商品详情页 // 3.1 获取dom对象 Document document = Jsoup.parse(html); // 3.2 商品的标题 Elements

    56860

    电商系统设计之商品接口

    本篇我思考了很久到底要不要下商品接口开发的注意点。 客户端开发与服务端开发即是天敌也是兄弟。希望本篇文章让你们减少争执,把“爱”给对方。 在开发获取商品详情接口时要遵循以下几个原则 返回的JSON嵌套数量要少 方便去查询到指定的SKU 其他接口相关规范 查询SKU 关于查询SKU,我让我的小伙伴是这样做的,首先拿出规格和属性 "选择颜色" 将value[id]取出,进行拼接即可查询到对应的SKU了。 响应参数[规格名称][属性编码] = 拼接SKU串的必需品 规格相当于一个分组,属性其实也是拼接SKU的重要组成部分,上述数据为例 75_77_82 = 银色,公开版,64G 接口文档 请求地址 /v1 参数 参数 类型 默认值 说明 sku[] array[] [] 商品sku [(option_id)] [] array[] 商品SKU查询办法为 attribute[(attr_name)][‘id

    58410

    扫码关注云+社区

    领取腾讯云代金券