【在线商城系统】数据来源-爬虫篇

news2024/9/24 15:17:18

系列文章目录

【在线商城系统】数据来源-爬虫篇


文章目录

  • 系列文章目录
  • 前言
  • 1、目标
  • 2、系统设计
  • 3、系统功能
    • 3.1、数据建模
    • 3.2、数据处理层系统
      • 3.2.1、创建Springboot项目
        • 3.2.1.1、配置依赖
        • 3.2.1.2、Selenium辅助类
        • 3.2.1.3、商品分类、商品详情实体类
      • 3.2.2、获取数据
      • 3.2.3、获取数据效果
  • 4、总结


前言

偶尔突发奇想,想做一个Springboot单体架构的商城系统,其中设计带有首页轮播图、分类商品展示、推荐商品展示、搜索商品展示。那么问题来了,我们如何让展示的商品数据生动有趣,达到京东、淘宝、拼多多真实商品的展示效果呢?
由于是个人展示系统,我们这里使用自制的spider系统来获取数据,取名:spiderX。

1、目标

常见的数据来源有多种,这里我们采用【外部数据】-【个人非盈利演示系统获取数据】模式。
在这里插入图片描述

2、系统设计

总体项目分为多个模块组成:

  • 数据处理层(负责获取原始数据、数据清洗)
  • 业务系统层(数据通过业务API、kafka等写入HDFS / Mysql)
  • 数据汇总层(数据通过flink、spark、Java系统处理汇总)
  • 业务前端 (展示业务数据,如:商品分类数据、商品数据)
  • 数据看板(展示其他维表信息)
    在这里插入图片描述

3、系统功能

3.1、数据建模

  • 连接Mysql数据库,创建数据库 online-store
  • 增加数据模型:商品分类、商品详情
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

3.2、数据处理层系统

  • 通过Springboot项目去获取数据
  • 采用selenium技术去获取数据
  • 采用Jsoup技术去解析数据

3.2.1、创建Springboot项目

  • 项目名:spiderX
    在这里插入图片描述

3.2.1.1、配置依赖

  <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.11.3</version>
        </dependency>

        <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-java</artifactId>
            <version>4.9.1</version>
        </dependency>

3.2.1.2、Selenium辅助类


包含Chrome WebDriver驱动,图片存储路径,图片下载方法等

package com.kelvin.spiderx.util;

import lombok.extern.slf4j.Slf4j;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/***
 * @title SeleniumUtil
 * @desctption Selenium辅助类
 * @author Kelvin
 * @create 2023/6/21 22:47
 **/
@Slf4j
public class SeleniumUtil {

    public final static String CHROMEDRIVERPATH = "/home/java/chrome/chromedriver.sh";

    public final static String LOCATION_IMG_BASE_PATH = "~/java/code/spiderX/img/";

    public static void sleep(int m) {
        try {
            Thread.sleep(m);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    /**
     * 文件下载到指定路径
     *
     * @param urlString 链接
     * @throws Exception
     */
    public static boolean download(String urlString, String parentFile , String key)  {
        String savePath = SeleniumUtil.LOCATION_IMG_BASE_PATH + parentFile + "/" + key + "/";
        String filename = new Date().getTime() + ".png";
        try{
            // 构造URL
            URL url = new URL(urlString);
            // 打开连接
            URLConnection con = url.openConnection();
            //设置请求超时为20s
            con.setConnectTimeout(20 * 1000);
            //文件路径不存在 则创建
            File sf = new File(savePath);
            if (!sf.exists()) {
                sf.mkdirs();
            }
            //jdk 1.7 新特性自动关闭
            try (InputStream in = con.getInputStream();
                 OutputStream out = new FileOutputStream(sf.getPath() + "//" + filename)) {
                //创建缓冲区
                byte[] buff = new byte[1024];
                int n;
                // 开始读取
                while ((n = in.read(buff)) >= 0) {
                    out.write(buff, 0, n);
                }
            } catch (Exception e) {
                return false;
            }
        } catch (Exception e) {
            return false;
        }
        log.info("【下载图片成功,本地地址:{}】" , savePath + filename);
        return true;
    }

    /**
     * 是否包含中文
     * @param str
     * @return
     */
    public static boolean isContainChinese(String str) {
        Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
        Matcher m = p.matcher(str);
        if (m.find()) {
            return true;
        }
        return false;
    }
}


3.2.1.3、商品分类、商品详情实体类

import lombok.AllArgsConstructor;
import lombok.Data;
import java.io.Serializable;

/***
 * @title Category
 * @desctption <TODO description class purpose>
 * @author LTF
 * @create 2023/6/21 22:55
 **/
@Data
@AllArgsConstructor
public class Category implements Serializable,Cloneable{
    private Integer categoryId ;

    private String categoryName ;

}


import lombok.Data;
import java.io.Serializable;

/***
 * @title Product
 * @desctption <TODO description class purpose>
 * @author LTF
 * @create 2023/6/21 22:55
 **/
@Data
public class Product implements Serializable,Cloneable{
    private Integer productId ;

    private String productName ;

    private Integer categoryId ;

    private String productTitle ;

    private String productIntro ;

    private String productPicture ;

    private Double productPrice ;

    private Double productSellingPrice ;

    private Integer productNum ;

    private Integer productSales ;

    private Integer status ;

}

3.2.2、获取数据

package com.kelvin.spiderx.service;

import com.kelvin.spiderx.util.SeleniumUtil;
import lombok.extern.slf4j.Slf4j;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.springframework.util.StringUtils;

import java.io.IOException;

/***
 * @title StoreDataService
 * @desctption <TODO description class purpose>
 * @author LTF
 * @create 2023/6/21 23:02
 **/
@Slf4j
public class StoreDataService {

    private static final String model = "xxStore";

    /**
     *  获取商品数据
     * @throws IOException
     */
    void storeInfoSearchBySelenium() {
        log.info("storeInfoSearchBySelenium start!");

        String baseUrl = "https://search.jd.com/Search?enc=utf-8&keyword=";

        System.setProperty("webdriver.chrome.driver", SeleniumUtil.CHROMEDRIVERPATH );// chromedriver localPath
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("--remote-allow-origins=*");
        chromeOptions.addArguments("–no-sandbox");  //--start-maximized

        WebDriver driver = new ChromeDriver(chromeOptions);

        String[] searchs = { "电脑" , "奶粉" , "玫瑰花" , "PPT" };
        String[] sortSearchName = { "dn" , "nf" , "mgh" , "ppt" };
        for (int i = 0; i < searchs.length; i++) {
            getStoreInfoSearchData(driver , baseUrl , searchs[i] , sortSearchName[i] );
        }

        driver.quit();
        log.info("storeInfoSearchBySelenium end!");
    }

    private void getStoreInfoSearchData(WebDriver driver, String baseUrl , String searchName , String sortName) {
        String url = baseUrl + searchName;
        driver.get(url);
        SeleniumUtil.sleep(3000);

        JavascriptExecutor jsDriver = (JavascriptExecutor) driver;//将java中的driver强制转型为JS类型
        String js ="window.scrollTo(0, document.body.scrollHeight)";
        jsDriver.executeScript(js);

        SeleniumUtil.sleep(2000);

        //Selenium获取网页内容
        //获取商品区域数据
        WebElement mainSelectE = driver.findElement(By.cssSelector("div.J-goods-list"));

        //转化为Jsoup文档处理
        Document doc = Jsoup.parse( mainSelectE.getAttribute("outerHTML") );
//        driver.quit();

        //找到商品数据集合
        Elements elements = doc.select("ul.gl-warp>li");
        log.info("商品 元素的长度:{}" , elements.size() );

        if(elements!=null&&elements.size()>0) {
            for (Element ele : elements) {
                //商品图片信息
                String imgPath = ele.select("div.p-img>a>img").attr("data-lazy-img");
                if(StringUtils.isEmpty(imgPath) == false) {
                    imgPath = "https:" + imgPath;
                    log.info("图片地址:{} , 目录:{}" , imgPath , sortName);
                    SeleniumUtil.download(imgPath , this.model , sortName);
                }

                String title = ele.select("div.p-name>a>em").text();
                if(StringUtils.isEmpty(title) == false) {
                    log.info("标题:{} " , title);
                }

                String price = ele.select("div.p-price>strong>i").text();
                if(StringUtils.isEmpty(price) == false) {
                    log.info("价格:{} " , title);
                }

            }
        }

        SeleniumUtil.sleep(500);

    }

    public static void main(String[] args) {
        StoreDataService storeDataService = new StoreDataService();
        storeDataService.storeInfoSearchBySelenium();
    }


}

3.2.3、获取数据效果

在这里插入图片描述

00:44:11.218 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:高端定制ppt代制作美化修改代做商业计划书融资路演讲比赛课件总结汇报企业简介产品介绍发布会宣传幻灯片 
00:44:11.219 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:100.00 
00:44:11.219 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https:done , 目录:ppt
00:44:11.220 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:和秋叶一起学PPT(第4版)(异步图书出品) 
00:44:11.220 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:49.50 
00:44:11.220 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https:done , 目录:ppt
00:44:11.220 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT设计思维:教你又好又快搞定幻灯片(第2版)(全彩印刷)(博文视点出品) 
00:44:11.221 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:55.70 
00:44:11.221 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img10.360buyimg.com/n7/jfs/t1/76136/4/23628/106916/63e9e2aaF2fcc7c8a/a0ca71299ae2c122.jpg.avif , 目录:ppt
00:44:11.453 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365851221.png】
00:44:11.453 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT影响力 : 逻辑思维 设计技法 演讲表达 
00:44:11.453 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:49.50 
00:44:11.454 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img10.360buyimg.com/n7/jfs/t1/111592/38/32940/98626/64263d9dF8293ae5e/af6f94f86dead7bb.jpg.avif , 目录:ppt
00:44:11.691 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365851454.png】
00:44:11.691 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:word excel ppt从入门到精通wps教程表格制作函数office书籍办公软件计算机应用基础知识自学书籍电脑入门办公软件自动化教程 
00:44:11.691 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:24.90 
00:44:11.691 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img13.360buyimg.com/n7/jfs/t1/169683/21/36659/57230/642b883aFe66fe6c5/310a11e3114346b9.jpg.avif , 目录:ppt
00:44:11.909 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365851691.png】
00:44:11.909 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT演讲力 重要时刻 不要输在表达上(人邮普华出品) 
00:44:11.909 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:34.40 
00:44:11.909 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img14.360buyimg.com/n7/jfs/t1/143480/18/34720/124490/64312688F970da7b6/fbe0b29004b732c6.jpg.avif , 目录:ppt
00:44:12.164 [AsyncHttpClient-1-1] DEBUG org.asynchttpclient.netty.channel.DefaultChannelPool - Entry count for : http://localhost:57483 : 1
00:44:12.221 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365851909.png】
00:44:12.221 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:高端ppt代制作美化修改公司简介产品路演讲医学课件设计竞聘述职转正答辩工作总结汇报动画企业宣传幻灯片 
00:44:12.221 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:50.00 
00:44:12.221 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img14.360buyimg.com/n7/jfs/t1/135713/34/30055/133481/63437ee7E7671f471/1da5aeb4350f2637.jpg.avif , 目录:ppt
00:44:12.322 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365852221.png】
00:44:12.323 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT 2021完全自学教程 164个实战案例+61个妙招技法+190节视频讲解+PPT课件 
00:44:12.323 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:103.90 
00:44:12.323 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img10.360buyimg.com/n7/jfs/t1/221131/8/17255/60478/62fe0346E5d9f681b/22d7204d9fbd9c57.jpg.avif , 目录:ppt
00:44:12.388 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365852323.png】
00:44:12.388 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:说服力 工作型PPT该这样做(异步图书出品) 
00:44:12.388 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:34.90 
00:44:12.388 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img11.360buyimg.com/n7/jfs/t1/198829/18/14773/59083/6178b9fdE14e60b0e/cfea3fa8bba05a9e.jpg.avif , 目录:ppt
00:44:12.662 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365852388.png】
00:44:12.663 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT知识图谱(全彩)(博文视点出品) 
00:44:12.664 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:72.60 
00:44:12.664 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img14.360buyimg.com/n7/jfs/t1/118398/11/31052/97306/636e75d9Eca2bdc68/4a0a0f57aee21092.jpg.avif , 目录:ppt
00:44:13.070 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365852665.png】
00:44:13.070 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:和秋叶一起学Word Excel PPT(套装3册 京东版)Office教程WPS书籍(异步图书出品) 
00:44:13.070 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:143.50 
00:44:13.070 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img11.360buyimg.com/n7/jfs/t1/32823/4/17875/114104/6321a293E29e7c319/1d8b5cecb1f28c4d.jpg.avif , 目录:ppt
00:44:13.128 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853070.png】
00:44:13.128 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:(赠网课)和秋叶一起学:秒懂Word+Excel+PPT全彩新版图书 秒懂office套装300:44:13.128 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:59.80 
00:44:13.128 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img13.360buyimg.com/n7/jfs/t1/101087/30/30243/202628/628c7245Ed8573e37/14b436b33a1786e5.jpg.avif , 目录:ppt
00:44:13.187 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853128.png】
00:44:13.187 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT之美:迅速提高PPT设计能力的100个关键技能 
00:44:13.188 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:54.40 
00:44:13.188 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img13.360buyimg.com/n7/jfs/t1/198460/1/19004/102864/61a6f56bE50ede9bf/3e34709f4760a351.jpg.avif , 目录:ppt
00:44:13.251 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853188.png】
00:44:13.252 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT设计思维(实战版)(限量版签名书签 随机发放)(博文视点出品) 
00:44:13.252 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:48.70 
00:44:13.252 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img11.360buyimg.com/n7/jfs/t1/185498/34/25781/57553/62e5d6acE8974ad06/ba32b12af1d44122.jpg.avif , 目录:ppt
00:44:13.264 [AsyncHttpClient-1-1] DEBUG org.asynchttpclient.netty.channel.DefaultChannelPool - Entry count for : http://localhost:57483 : 1
00:44:13.324 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853252.png】
00:44:13.324 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:和秋叶一起学 秒懂PPT(全彩版)(异步图书出品) 
00:44:13.324 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:23.60 
00:44:13.324 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img11.360buyimg.com/n7/jfs/t1/44214/24/2617/299222/5ccb1aa8E1cebbe6a/b64f156551208a53.jpg.avif , 目录:ppt
00:44:13.405 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853324.png】
00:44:13.405 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT之光:三个维度打造完美PPT(全彩)(博文视点出品) PPT之光+Excel之光+Word之光(全彩 套装共3册) 
00:44:13.405 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:32.70 112.80 
00:44:13.406 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img11.360buyimg.com/n7/jfs/t1/31163/27/15640/371195/5cc2ff02E47bb5d38/4335b60762284ce8.jpg.avif , 目录:ppt
00:44:13.471 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853406.png】
00:44:13.472 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:精进PPT 成为PPT高手 
00:44:13.473 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:63.60 
00:44:13.474 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img12.360buyimg.com/n7/jfs/t1/95448/32/15819/182288/5e72d1cdEe86baba6/59a18bc198295380.jpg.avif , 目录:ppt
00:44:13.820 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853474.png】
00:44:13.821 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:你就是干不过做PPT的 
00:44:13.821 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:24.00 
00:44:13.821 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img12.360buyimg.com/n7/jfs/t1/143435/34/31085/49535/63678b15E880af5fd/caa31b79f306cc0d.jpg.avif , 目录:ppt
00:44:13.928 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853821.png】
00:44:13.929 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:儒遇 ppt制作代做定制修改美化述职报告总结汇报路演课件定制工作幻灯片排版美化宣传产品设计 有资料静态 
00:44:13.930 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:20.00 
00:44:13.930 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img11.360buyimg.com/n7/jfs/t1/193653/23/29935/86945/6392cf81E67cd0cf0/67127642bb0983e4.jpg.avif , 目录:ppt
00:44:13.998 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365853930.png】
00:44:13.999 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:PPT表达力:从Excel到PPT完美展示(案例视频版)ppt设计思维ppt制作教程wps office高效办公技巧大全ppt书籍word办公应用办公软件自学教程 
00:44:14.000 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:42.60 
00:44:14.000 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img14.360buyimg.com/n7/jfs/t1/116929/13/36486/101953/648fb243Fe8c8f7e3/8222c75f2002a954.jpg.avif , 目录:ppt
00:44:14.137 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365854000.png】
00:44:14.137 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:和秋叶一起学:秒懂Word+Excel+PPT全彩新版(京东套装3册)Office教程WPS书籍(异步图书出品) 
00:44:14.137 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:59.80 
00:44:14.138 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img13.360buyimg.com/n7/jfs/t1/183108/27/18061/87479/610cd088E71009eb7/183f499238b67e49.jpg.avif , 目录:ppt
00:44:14.189 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365854138.png】
00:44:14.189 [main] INFO com.kelvin.spiderx.service.StoreDataService - 标题:数据可视化必修课——Excel 图表制作与PPT展示(异步图书出品) 
00:44:14.189 [main] INFO com.kelvin.spiderx.service.StoreDataService - 价格:42.60 
00:44:14.189 [main] INFO com.kelvin.spiderx.service.StoreDataService - 图片地址:https://img10.360buyimg.com/n7/jfs/t1/127991/24/21915/124027/6276425eE56ee082e/ab128fa8432b03d0.jpg.avif , 目录:ppt
00:44:14.256 [main] INFO com.kelvin.spiderx.util.SeleniumUtil - 【下载图片成功,本地地址:~/java/code/spiderX/img/xxStore/ppt/1687365854189.png】


4、总结

以上就是今天要讲的内容,本文仅仅简单介绍了数据处理层的使用,后续还有业务处理层、前端展示、数据看板模块要完善。

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

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

相关文章

【C++篇】继承和派生

友情链接&#xff1a;C/C系列系统学习目录 知识总结顺序参考C Primer Plus&#xff08;第六版&#xff09;和谭浩强老师的C程序设计&#xff08;第五版&#xff09;等&#xff0c;内容以书中为标准&#xff0c;同时参考其它各类书籍以及优质文章&#xff0c;以至减少知识点上的…

不用手动改 package.json 的版本号

“为什么package.json 里的版本还是原来的&#xff0c;有没有更新&#xff1f;”&#xff0c;这个时候我意识到&#xff0c;我们完全没有必要在每次发布的时候还特意去关注这个仓库的版本号&#xff0c;只要在发布打tag的时候同步一下即可 node.js 部分&#xff0c;我们得有一个…

探索视频文本特征加速检索解决方案——倒排索引

前言 随着视频内容的不断增加&#xff0c;如何快速准确地检索到所需的视频成为了一个重要的问题。而视频文本特征加速检索解决方案——倒排索引&#xff0c;成为了解决这一问题的有效手段。该技术可以加速文本和视频片段特征匹配、相似度排序过程&#xff01; 定义——何为“…

windows -- dos命令

文章目录 内部命令变量常用命令特殊命令符综合案例 外部命令 内部命令 操作系统的内部命令。 win r, 输入cmd 打开命令窗口&#xff1b; 如&#xff1a; dir&#xff0c;查看当前目录下的内容cd&#xff0c;切换目录copy&#xff0c; 拷贝echo&#xff0c;打印 变量 windo…

硬盘被写保护怎么解决

目录 问题描述方法1&#xff1a;使用diskpart清除只读属性方法2&#xff1a;树莓派镜像烧录软件 U盘格式化不了&#xff0c;怎么做呢&#xff1f; 问题描述 方法1&#xff1a;使用diskpart清除只读属性 我是I盘出现了问题&#xff0c;所以我在命令提示符输入&#xff1a; chk…

Spring Cloud Alibaba Seata(一)

目录 一、Seata 1、分布式事务简介 1.1、分布式事务理论 1.2、分布式事务解决方案 2、Seata简介 3、Seata安装 一、Seata 1、分布式事务简介 基础概念&#xff1a;事务ACID A&#xff08;Atomic&#xff09;&#xff1a;原子性&#xff0c;构成事务的所有操作&#xf…

L0到L4级别下的泊车功能设计详解(上)

摘要&#xff1a; 乘用车自动驾驶/辅助驾驶按场景分主要包括城区场景、高速场景和泊车场景。 媳妇和我工作地点一南一北&#xff0c;工作地点公共交通又都不方便&#xff0c;在只有一辆车的背景下&#xff0c;我是早送仙女晚接美人&#xff0c;毫无怨言。但看到今年新车层出不…

Kali Linux 2023.2为Xfce版带来PipeWire支持

Kali Linux 2023.2为Xfce版带来PipeWire支持&#xff0c;彻底改造i3桌面&#xff0c;这个版本还引入了一个新的Hyper-V VM镜像&#xff0c;以及几个新的黑客工具。 Offensive Security宣布了他们流行的道德黑客和渗透测试GNU/Linux发行版的新版本&#xff0c;带来了新的功能&am…

chatgpt赋能python:Python整人代码:开发有趣的恶作剧工具

Python整人代码&#xff1a;开发有趣的恶作剧工具 Python是一种高级编程语言&#xff0c;它有着众多功能库和API&#xff0c;能够用于各种不同的领域。但是&#xff0c;Python也可以用来编写有趣的恶作剧代码&#xff0c;搞乐一下&#xff01;在这篇文章中&#xff0c;我们将介…

通过使用SpringBoot与ElementUI来实现数据的分页功能

背景 分页: 如果一次性的查询全部数据, 响应时间就太长了, 使得浏览器, java虚拟机都有延迟, 用户使用上就会容易出现卡顿:所以就要降低数据库的压力, 使用分页来显示, 一次显示一部分数据 例子: 假设有五条数据, 每一页都显示两条 实现分页要知道: 每页多少条数据当前的页数一…

C++ [STL容器适配器]

本文已收录至《C语言和高级数据结构》专栏&#xff01; 作者&#xff1a;ARMCSKGT STL容器适配器 前言正文容器适配器stack 栈stack的使用stack模拟实现 queue 队列queue的使用queue模拟实现 priority_queue 优先级队列priority_queue的使用priority_queue模拟实现 deque 双端队…

第二章 VGG网络详解

系列文章目录 第一章 AlexNet网络详解 第二章 VGG网络详解 第三章 GoogLeNet网络详解 第四章 ResNet网络详解 第五章 ResNeXt网络详解 第六章 MobileNetv1网络详解 第七章 MobileNetv2网络详解 第八章 MobileNetv3网络详解 第九章 ShuffleNetv1网络详解 第十章…

Debian12中Grub2识别Windows

背景介绍&#xff1a;windows10 debian11,2023年6月&#xff0c;Debian 12正式版发布了。抵不住Debian12新特性的诱惑&#xff0c;我将Debian11升级至Debian12。升级成功&#xff0c;但Debian12的Grub2无法识别Window10。于是执行如下命令&#xff1a; debian:~# update-grub G…

图片加载错误的捕获及处理

引言 前端开发中&#xff0c;图片是我们在网页中加载最多的静态资源类型之一&#xff0c;但是图片加载过程中也有可能出现加载失败的情况&#xff0c;这是十分影响用户体验的。那么如何正确的判断图片是否成功加载&#xff0c;以及图片加载失败的时候&#xff0c;如何处理&…

了解 Dockerfile 和搭建 Docker 私有仓库:让容器化部署变得更简单

目录 1、Dockerfile 1.1什么是Dockerfile 1.2常用命令 1.3使用脚本创建镜像 2、Docker私有仓库 2.1私有仓库介绍&#xff1a; 2.2私有仓库搭建与配置 2.3上传镜像到私有仓库&#xff1a; 1、Dockerfile 1.1什么是Dockerfile Dockerfile是由一些列命令和参数构成的脚本…

【服务器数据恢复】IBM存储分配的卷无法访问的数据恢复案例

服务器故障&#xff1a; 一台IBM DS存储出现故障&#xff0c;存储分配给aix小机的卷无法访问。从底层查看分配给aix小机的3个卷的lvm信息丢失。 服务器数据恢复过程&#xff1a; 1、将存储中所有磁盘编号后取出&#xff0c;以只读方式做全盘镜像&#xff0c;后续的数据分析和数…

【C++篇】字符串:标准库string类

友情链接&#xff1a;C/C系列系统学习目录 知识总结顺序参考C Primer Plus&#xff08;第六版&#xff09;和谭浩强老师的C程序设计&#xff08;第五版&#xff09;等&#xff0c;内容以书中为标准&#xff0c;同时参考其它各类书籍以及优质文章&#xff0c;以至减少知识点上的…

Eyeshot 2023 Added NuGet packages.

Added Microsoft Visual Studio 2022 Extensions menu item.Microsoft .NET 6 Windows Toolbox items.Added NuGet packages.Planar curve projection on Sketch plane.Improved fillet surfaces quality and speed.Added ICurve.ConverToLinearPath() family of methods.   …

RabbitMQ学习笔记4(小滴课堂)RabbitMQ工作队列模型实战

Java项目整合RabbitMQ 创建一个maven项目。 然后我们在maven里加上jdk和rabbitmq的依赖设置&#xff1a; 我们写一段生产者的代码&#xff1a; 然后我们去运行它&#xff1a; 可以看到这里有一个队列。 现在我们是可以查看到队列的。 我们去写消费者代码&#xff1a; 这里的之…

LeetCode 2090. K Radius Subarray Averages【前缀和,滑动窗口,数组】中等

本文属于「征服LeetCode」系列文章之一&#xff0c;这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁&#xff0c;本系列将至少持续到刷完所有无锁题之日为止&#xff1b;由于LeetCode还在不断地创建新题&#xff0c;本系列的终止日期可能是永远。在这一系列刷题文章…