【java爬虫】公司半年报数据展示

前言

前面有一篇文章介绍了使用selenium获取上市公司半年报的方法,这篇文章就给这些数据写一个简单的前端展示页面

上一篇文章的链接在这里

【java爬虫】使用selenium获取某交易所公司半年报数据-CSDN博客

首先来看一下整个页面的展示效果

前端页面采用vue+element-plus+axio进行编写,采用cdn的方式引入,只有一个index.html文件。

我们要展示的数据如下:

  • 整体的统计数据(各种平均值)
  • 经营收入排名前十的公司
  • 净利润排名前十的公司
  • 经营现金流排名前十的公司
  • 资产收益率排名前十的公司
  • 基本每股收益排名前十的公司
  • 资产负债率排名前十的公司

第一个组数据用进行展示,后面的数据用进行展示。

后端部分

我们需要写一些sql语句用于统计这些数据。

首先需要写一个用于获取第一组数据的实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
public class StatisticsEntity {

    // 平均营业收入
    private Double incomeavg;

    // 平均净利润
    private Double profit1avg;

    // 平均经营现金流
    private Double cashflowavg;

    // 平均资产收益率
    private Double rate1avg;

    // 平均基本每股收益
    private Double rate2avg;

    // 平均资产负债率
    private Double rate3avg;
}

接着是Mapper接口

@Mapper
public interface ReportMapper {

    // 清空表
    public void clearAll();

    // 插入一条数据
    public void insertOneItem(@Param("item")ReportEntity entity);

    // 查询营业收入最高的十大公司
    public List queryMaxIncome();

    // 查询净利润最高的十大公司
    public List queryMaxProfit();

    // 查询经营现金流最高的十大公司
    public List queryMaxCashflow();

    // 查询净资产收益率最高的十大公司
    public List queryMaxRate1();

    // 查询每股收益最高的十大公司
    public List queryMaxRate2();

    // 查询资产负债率率最高的十大公司
    public List queryMaxRate3();

    // 平均营业收入
    public Double queryIncomeAvg();

    // 平均净利润
    public Double queryProfit1Avg();

    // 平均经营现金流
    public Double queryCashflowAvg();

    // 平均资产负债率
    public Double queryRate1Avg();

    // 平均基本每股收益
    public Double queryRate2Avg();

    // 平均资产负债率
    public Double queryRate3Avg();

}

Mapper对应的xml文件




    
        company, stock, income, profit1, profit2, cashflow, rate1, rate2, rate3
    


    
        delete from t_report where 1=1
    

    
        insert into t_report
        (company, stock, income, profit1, profit2, cashflow, rate1, rate2, rate3)
        values
        (#{item.company}, #{item.stock}, #{item.income}, #{item.profit1},
         #{item.profit2}, #{item.cashflow}, #{item.rate1}, #{item.rate2}, #{item.rate3})
    

    

    

    

    

    

    

    

    

    

    

    

    

最后是Controller类

@Controller
@CrossOrigin(origins = "*")
public class QueryController {

    @Autowired
    private ReportMapper reportMapper;

    @RequestMapping("queryBaseInfo")
    @ResponseBody
    public String queryBaseInfo() {
        StatisticsEntity statisticsEntity = new StatisticsEntity();
        statisticsEntity.setIncomeavg(reportMapper.queryIncomeAvg());
        statisticsEntity.setCashflowavg(reportMapper.queryCashflowAvg());
        statisticsEntity.setProfit1avg(reportMapper.queryProfit1Avg());
        statisticsEntity.setRate1avg(reportMapper.queryRate1Avg());
        statisticsEntity.setRate2avg(reportMapper.queryRate2Avg());
        statisticsEntity.setRate3avg(reportMapper.queryRate3Avg());
        return JSON.toJSONString(statisticsEntity);
    }


    @RequestMapping("queryMaxIncome")
    @ResponseBody
    public String queryMaxIncome() {
        List reportEntities = reportMapper.queryMaxIncome();
        return JSON.toJSONString(reportEntities);
    }

    @RequestMapping("queryMaxProfit")
    @ResponseBody
    public String queryMaxProfit() {
        List reportEntities = reportMapper.queryMaxProfit();
        return JSON.toJSONString(reportEntities);
    }

    @RequestMapping("queryMaxCashflow")
    @ResponseBody
    public String queryMaxCashflow() {
        List reportEntities = reportMapper.queryMaxCashflow();
        return JSON.toJSONString(reportEntities);
    }

    @RequestMapping("queryMaxRate1")
    @ResponseBody
    public String queryMaxRate1() {
        List reportEntities = reportMapper.queryMaxRate1();
        return JSON.toJSONString(reportEntities);
    }

    @RequestMapping("queryMaxRate2")
    @ResponseBody
    public String queryMaxRate2() {
        List reportEntities = reportMapper.queryMaxRate2();
        return JSON.toJSONString(reportEntities);
    }

    @RequestMapping("queryMaxRate3")
    @ResponseBody
    public String queryMaxRate3() {
        List reportEntities = reportMapper.queryMaxRate3();
        return JSON.toJSONString(reportEntities);
    }
}

前端部分

之前说过我们采用cdn的方式引入库,所有的代码如下




    
    
    
    
    
    
    
    
    
    
    
    上交所公司半年报数据简析

    



    

上交所公司半年报数据简析

{{ baseInfo.incomeavg }}

{{ baseInfo.profit1avg }}
{{ baseInfo.cashflowavg }}
{{ baseInfo.rate1avg }}
{{ baseInfo.rate2avg }}
{{ baseInfo.rate3avg }}












结语

可以从上面的分享看出来整体的逻辑非常简单,就是写sql获取数据然后前端页面进行展示,下面分享一些详细数据。

【java爬虫】公司半年报数据展示_第1张图片

【java爬虫】公司半年报数据展示_第2张图片

【java爬虫】公司半年报数据展示_第3张图片

【java爬虫】公司半年报数据展示_第4张图片

【java爬虫】公司半年报数据展示_第5张图片

【java爬虫】公司半年报数据展示_第6张图片

【java爬虫】公司半年报数据展示_第7张图片

你可能感兴趣的:(java网络爬虫,经济金融,爬虫)