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

news/2024/7/19 12:29:37 标签: 爬虫, java, 开发语言

系列文章目录

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


文章目录

  • 系列文章目录
  • 前言
  • 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驱动,图片存储路径,图片下载方法等

java">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、商品分类、商品详情实体类

java">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 ;

}


java">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、获取数据

java">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.niftyadmin.cn/n/456643.html

相关文章

MySQL全备+binlog恢复方法之伪装master

利用mysql全备 binlog server恢复方法之伪装master 单实例试验 一、试验环境 10.72.7.40 实例 mysql3306为要恢复的对象&#xff0c;mysql3306的全备binlog server&#xff08;目录/data/mysql/mysql3306/backup&#xff09; 实例mysql3307为伪装master 实例mysql3308为伪…

MATLAB算法实战应用案例精讲-【自动驾驶】自动驾驶中的自动泊车功能(补充篇)

目录 前言 什么是自动泊车? 国内外发展 自主泊车系统 自动泊车的系统硬件架构

类似微信预览缩放保存插件previewImage.js

很好用的预览缩放保存插件。 插件源码如下&#xff1a; (function(){ let insideObject { // inputId : // 用于页面多图片预览时绑定相应预览图片 inputName:plantIconPath, // 用于表单提交 imageId:preview_img, // 用于预览图片的渲染 defaultImgPath : "&…

多线程并发和多任务并行的小结

一、多线程并行的一点小结 1.无论是thread::spawn还是tokio::spawn,都是创建一个线程或者任务去执行闭包的函数体。thread::spawn接受一个闭包作为参数&#xff0c;并返回一个 JoinHandle&#xff0c;其中 T 是闭包的返回类型。创建的新线程将在后台运行&#xff0c;并执行闭包…

axios 发送请求请求头信息不包含Cookie信息

问题 axios 发送请求请求头信息不包含Cookie信息 详细问题 使用VueSpringBoot进行项目开发&#xff0c;axios进行网络请求&#xff0c;发送请求&#xff0c;请求头信息不包含Cookie信息 具体如下 实际效果 预期效果 解决方案 作用域 Vue项目全局配置 打开Vue项目的入口…

【面试题03】isset 与 empty 区别

系列文章目录 文章目录 系列文章目录一、问题概述二、isset和empty的基本使用2.1 isset函数2.2 empty函数 三、isset和empty的区别3.1 isset的判断3.2 empty的判断 四、 实际例子4.1 验证输入参数4.2 数组元素存在判断4.3 检查文件或目录是否存在 总结 一、问题概述 PHP是一种…

详解java定时任务

在我们编程过程中如果需要执行一些简单的定时任务&#xff0c;无须做复杂的控制&#xff0c;我们可以考虑使用JDK中的Timer定时任务来实现。下面LZ就其原理、实例以及Timer缺陷三个方面来解析java Timer定时器。 一、简介 在java中一个完整定时任务需要由Timer、TimerTask两个…

热红外图像增强算法综述

热红外图像增强是热成像领域中的重要技术之一&#xff0c;主要用于提高热红外图像的质量和可视化效果。热红外图像由于其独特的物理特性和应用场景&#xff0c;与可见光图像相比具有不同的特征和挑战。本文将介绍热红外图像增强算法&#xff0c;并详细说明四个以上的具体算法&a…