《2021博客之星年度总评选》数据采集样例程序

《2021博客之星年度总评选》数据采集Java样例程序

文章目录

  • pom.xml
  • 2020线上投票博客之星数据采集|样例程序
    • 采集样例
  • 2020投票贡献排行榜数据采集|样例程序
    • 采集样例
  • 2021线上评分TOP90数据采集|样例程序
    • 采集样例
  • 博主博客文章统计|样例程序
    • 采集样例
  • 2021线上评分[入围名单TOP100]数据采集|样例程序
    • 采集样例


pom.xml


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>1groupId>
    <artifactId>_psimplemvnartifactId>
    <version>1.0-SNAPSHOTversion>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.pluginsgroupId>
                <artifactId>maven-compiler-pluginartifactId>
                <configuration>
                    <source>8source>
                    <target>8target>
                configuration>
            plugin>
        plugins>
    build>

    <dependencies>
        <dependency>
            <groupId>org.seleniumhq.seleniumgroupId>
            <artifactId>selenium-chrome-driverartifactId>
            <version>4.0.0version>
        dependency>
        <dependency>
            <groupId>org.apache.poigroupId>
            <artifactId>poi-ooxmlartifactId>
            <version>3.17version>
        dependency>
    dependencies>


project>

2020线上投票博客之星数据采集|样例程序

/**
 * Copyright (C), 2000-2021, XXX有限公司
 * FileName: BlogStarStatisticsTest
 * Author: wangyetao
 * Date: 21-12-26 23:38:10
 * Description: 线上投票博客之星数据采集
 * 

* History: * 作者姓名 *

    //单条数据DOM结构 //
  • // // 001 //
    // //
    //
    ✎ℳ๓₯㎕...雲淡風輕
    //
    码龄6年
    //
    //

    2020年度原创博文:77 篇

    //

    当前票数: 392

    //
    // //
    //
  • //
      blogStars = new ArrayList<BlogStar>(); //稍等页面渲染完成 Thread.sleep(3000); List<WebElement> search_results = driver.findElements(By.xpath("//*[@id=\"blogList\"]/li")); for (int i = 0; i < search_results.size(); i++) { WebElement element = search_results.get(i); BlogStar blogStar = new BlogStar(); //录入时间 blogStar.createTime = TimeUtil.getStampToString(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"); //序号 blogStar.num = element.findElement(By.className("num")).getText(); //博客简称 name blogStar.name = element.findElement(By.className("name")).getText(); //头像图片 avatarurl blogStar.avatarUrl = element.findElement(By.tagName("img")).getAttribute("src"); //码龄 blogStar.intlevel = StringUtil.getInts(element.findElement(By.className("level")).getText())[0]; //blog-num年度原创博文数、current-vote当前票数 blogStar.intBlogNum = StringUtil.getInts(element.findElement(By.className("blog-num")).getText())[1]; blogStar.intCurrentVote = StringUtil.getInts(element.findElement(By.className("current-vote")).getText())[0]; blogStars.add(blogStar); } driver.close(); ArrayList<String> heads = new ArrayList<String>(); heads.add("序号"); heads.add("博客简称"); heads.add("小头像url"); heads.add("码龄(年)"); heads.add("年度原创博文数"); heads.add("当前票数"); heads.add("录入时间"); //CSVUtils.createCSVFile(heads, blogStars, outPutPath, filename); System.out.println("Creating excel"); try { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(sheetname); //设置列宽 for (int i = 0; i < heads.size(); i++) { if (i == 0) { sheet.setColumnWidth(i, 6 * 256); } else if (i == 6) { sheet.setColumnWidth(i, 20 * 256); } else { sheet.setColumnWidth(i, 15 * 256); } } Row row = null; Cell cell = null; //插入第一行数据的表头 //创建第一行 row = sheet.createRow(0); for (int i = 0; i < heads.size(); i++) { cell = row.createCell(i); cell.setCellValue(heads.get(i)); } int rowNum = 1; int colNum = 0; //组合表格:行、列 for (BlogStar blogStar : blogStars) { row = sheet.createRow(rowNum++); cell = row.createCell(colNum++); cell.setCellValue(blogStar.num); cell = row.createCell(colNum++); cell.setCellValue(blogStar.name); cell = row.createCell(colNum++); cell.setCellValue(blogStar.avatarUrl); cell = row.createCell(colNum++); cell.setCellValue(blogStar.intlevel); cell = row.createCell(colNum++); cell.setCellValue(blogStar.intBlogNum); cell = row.createCell(colNum++); cell.setCellValue(blogStar.intCurrentVote); cell = row.createCell(colNum++); cell.setCellValue(blogStar.createTime); colNum = 0; } outputStream = new FileOutputStream(outPutPath + filename + suffix); //写入数据到Excel workbook.write(outputStream); //关闭流 outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println("Done"); } }

采集样例

  • 《2021博客之星年度总评选》数据采集样例程序_第1张图片

2020投票贡献排行榜数据采集|样例程序

/**
 * Copyright (C), 2000-2021, XXX有限公司
 * FileName: BlogStarStatisticsVoteLeaderboardList
 * Author: wangyetao
 * Date: 21-12-27 02:43:32
 * Description: 投票贡献排行榜
 * 

* History: * 作者姓名 *

    //单条数据DOM结构 //
  • //
    // 1 // swagLi // // //
    //
    // 码龄4年 // 36票 //
    //
  • //
      blogVotes = new ArrayList<BlogStar>(); //稍等页面渲染完成 Thread.sleep(2000); List<WebElement> search_results = driver.findElements(By.xpath("//*[@id=\"voteLeaderboardList\"]/li")); for (int i = 0; i < search_results.size(); i++) { WebElement element = search_results.get(i); BlogStar blogStar = new BlogStar(); //录入时间 blogStar.createTime = TimeUtil.getStampToString(System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss"); //编号 blogStar.num = element.findElement(By.className("num")).getText(); //博粉名称 blogStar.name = element.findElement(By.className("text")).getText(); //码龄(年) blogStar.intlevel = StringUtil.getInts(element.findElement(By.className("code-age")).getText())[0]; //支持票数 blogStar.intCurrentVote = StringUtil.getInts(element.findElement(By.className("vote-num")).getText())[0]; blogVotes.add(blogStar); } driver.close(); ArrayList<String> heads = new ArrayList<String>(); heads.add("编号"); heads.add("博粉名称"); heads.add("码龄(年)"); heads.add("支持票数"); heads.add("录入时间"); //CSVUtils.createCSVFile(heads, blogVotes, outPutPath, filename); System.out.println("Creating excel"); try { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(sheetname); //设置列宽 for (int i = 0; i < heads.size(); i++) { if (i == 0) { sheet.setColumnWidth(i, 6 * 256); } else if (i == 4) { sheet.setColumnWidth(i, 20 * 256); } else { sheet.setColumnWidth(i, 15 * 256); } } Row row = null; Cell cell = null; //插入第一行数据的表头 //创建第一行 row = sheet.createRow(0); for (int i = 0; i < heads.size(); i++) { cell = row.createCell(i); cell.setCellValue(heads.get(i)); } int rowNum = 1; int colNum = 0; //组合表格:行、列 for (BlogStar blogStar : blogVotes) { row = sheet.createRow(rowNum++); cell = row.createCell(colNum++); cell.setCellValue(blogStar.num); cell = row.createCell(colNum++); cell.setCellValue(blogStar.name); cell = row.createCell(colNum++); cell.setCellValue(blogStar.intlevel); cell = row.createCell(colNum++); cell.setCellValue(blogStar.intCurrentVote); cell = row.createCell(colNum++); cell.setCellValue(blogStar.createTime); colNum = 0; } outputStream = new FileOutputStream(outPutPath + filename + suffix); //写入数据到Excel workbook.write(outputStream); //关闭流 outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println("Done"); } }

采集样例

  • 《2021博客之星年度总评选》数据采集样例程序_第2张图片

2021线上评分TOP90数据采集|样例程序

/**
 * Copyright (C), 2000-2021, XXX有限公司
 * FileName: Blogstar2021
 * Author: wangyetao
 * Date: 21-12-28 15:50:02
 * Description: 线上评分TOP90数据采集,输出blogstar2021.xlsx
 * 

* History: * 作者姓名 *

采集样例

  • 《2021博客之星年度总评选》数据采集样例程序_第3张图片

博主博客文章统计|样例程序

/**
 * Copyright (C), 2000-2021, XXX有限公司
 * FileName: BlogArticleStatistics
 * Author: wangyetao
 * Date: 21-12-27 05:20:10
 * Description: 博主博客文章统计
 * 

* History: * 作者姓名 *

// //单条文章数据DOM结构 //
//

// // data-report-click="{"spm":"1001.2014.3001.5190"}" target="_blank"> // 原创 // 获取世界人口排名2021 // //

//

// 获取世界人口排名2021,Linux配置Selenium+Chrome+Java实现自动化测试 //

//
//

// 2021-12-26 06:16:59 // 105 //

//
//
// // 编辑 //
//
// //
blogArticles = new ArrayList<Article>(); //稍等页面渲染完成 Thread.sleep(2000); //nextElement WebElement nextElement = driver.findElement(By.className("js-page-next")); int dataNum = Integer.valueOf(driver.findElement(By.id("container-header-blog")).getAttribute("data-num")); while (nextElement != null && blogArticles.size() < dataNum) { List<WebElement> search_results = driver.findElements(By.className("article-item-box")); for (int i = 0; i < search_results.size(); i++) { WebElement element = search_results.get(i); Article article = new Article(); //文章标题 article.title = element.findElement(By.tagName("a")).getText(); //简要内容 article.content = element.findElement(By.className("content")).getText(); //发布时间 article.publishTime = element.findElement(By.className("date")).getText(); //访问数 article.readNum = StringUtil.getInts(element.findElement(By.className("read-num")).getText())[0]; blogArticles.add(article); } nextElement.click(); //稍等页面渲染完成 Thread.sleep(3000); nextElement = driver.findElement(By.className("js-page-next")); } driver.close(); ArrayList<String> heads = new ArrayList<String>(); heads.add("文章标题"); heads.add("简要内容"); heads.add("发布时间"); heads.add("访问数"); //CSVUtils.createCSVFile(heads, blogArticles, outPutPath, filename); System.out.println("Creating excel"); try { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(sheetname); //设置列宽 for (int i = 0; i < heads.size(); i++) { if (i == 3) { sheet.setColumnWidth(i, 6 * 256); } else { sheet.setColumnWidth(i, 15 * 256); } } Row row = null; Cell cell = null; //插入第一行数据的表头 //创建第一行 row = sheet.createRow(0); for (int i = 0; i < heads.size(); i++) { cell = row.createCell(i); cell.setCellValue(heads.get(i)); } int rowNum = 1; int colNum = 0; //组合表格:行、列 for (Article article : blogArticles) { row = sheet.createRow(rowNum++); cell = row.createCell(colNum++); cell.setCellValue(article.title); cell = row.createCell(colNum++); cell.setCellValue(article.content); cell = row.createCell(colNum++); cell.setCellValue(article.publishTime); cell = row.createCell(colNum++); cell.setCellValue(article.readNum); colNum = 0; } outputStream = new FileOutputStream(outPutPath + filename + suffix); //写入数据到Excel workbook.write(outputStream); //关闭流 outputStream.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } System.out.println("Done"); } }

采集样例

  • 《2021博客之星年度总评选》数据采集样例程序_第4张图片

2021线上评分[入围名单TOP100]数据采集|样例程序

/**
 * Copyright (C), 2000-2021, XXX有限公司
 * FileName: Blogstar2021
 * Author: wangyetao
 * Date: 2022年 01月 08日 星期六 21:49:17 CST
 * Description: 线上评分[入围名单TOP100]数据采集,输出blogstar2021.xlsx
 * 

* History: * 作者姓名 *

采集样例

《2021博客之星年度总评选》数据采集样例程序_第5张图片

作于2021年 12月 27日 星期一 04:02:17 CST,归档于2021年 12月 27日 星期一 20:48:42 CST。

你可能感兴趣的:([Java基础],java,maven,apache)