栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

flask+echarts+jinjia对考研数据进行可视化【课程设计/毕业设计】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

flask+echarts+jinjia对考研数据进行可视化【课程设计/毕业设计】

文章目录
  • 前言
  • 一、部分爬取数据源码
  • 二、echarts可视化图形展示
    • 1.聚合柱状图
    • 2.折线图
    • 3.正负柱状图
    • 4.玫瑰图
    • 5.折线图
    • 6.词云图
    • 7.大屏展示
    • 8.中国地图


前言

项目源码获取请私聊!!!!

一、部分爬取数据源码

参考网址:
https://yz.chsi.com.cn/
https://yz.chsi.com.cn/yztj/
http://www.chinakaoyan.com/tiaoji/schoollist.shtml

import csv
import requests
from lxml import etree


def htmls(url,headers):
    html_oil=requests.get(url=url,headers=headers).text#用requests方法拿到源代码
    return html_oil

#解析2022年全国硕士研究生招生考试考生进入复试的初试成绩基本要求(学术学位类)数据
def getinfo(html_oil):
    source=etree.HTML(html_oil)#将传进去的源代码转变成_Element对象
    alls = source.xpath('//table[@]/tbody')[0]  # 获取所需数据总节点
    title = source.xpath('/html/body/div[1]/div[2]/div[3]/h2/span/text()')[0]#获取标题
    alls1 = alls.xpath('./tr')  # 获取所需数据所有节点
    datas = []  # 建立一个列表存储所有数据
    data = alls1[2].xpath('./td/text()')#获取数据节点
    datas.append(data[:7])#去除多余的值
    for i in range(3, len(alls1)):
        data = alls1[i].xpath('./td/text()')  # 遍历所有节点并获得数据
        datas.append(data)  # 将数据存入datas列表
    print(datas)#打印结果
    return datas,title

# 2022年全国硕士研究生招生考试考生进入复试的初试成绩基本要求(专业学位类)数据
def getinfo1(html_oil):
    source = etree.HTML(html_oil)#将传进去的源代码转变成_Element对象
    alls = source.xpath('//table[@]/tbody')[0]  # 获取所需数据总节点
    title1 = source.xpath('/html/body/div[1]/div[2]/div[3]/h2/span/text()')[0]#获取标题
    alls1 = alls.xpath('./tr')  # 获取所需数据所有节点
    datas1 = []  # 建立一个列表存储所有数据
    data = alls1[2].xpath('./td/text()')#获取数据节点
    datas1.append(data[:7])#去除多余的值
    for i in range(3, len(alls1)):
        data = alls1[i].xpath('./td/text()') # 遍历所有节点并获得数据
        if len(data)>7:
            data=data[2:]#去除空值
            datas1.append(data)  # 将数据存入datas1列表
        else:
            datas1.append(data)  # 将数据存入datas1列表
    print(datas1)#打印结果
    return datas1, title1

# 存储为csv
def saveinfo(datas,title,header):
    with open('static/{}.csv'.format(title), 'w', newline='', encoding='utf-8') as f:
        writer = csv.writer(f)  # 打开csv文件
        writer.writerow(header)#写入标题
        writer.writerows(datas)  # 写入数据


if __name__ == '__main__':
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'
    }#UA伪装
    urls ='https://yz.chsi.com.cn/kyzx/kp/202203/20220311/2172246782.html'#网址
    html_oil=htmls(url=urls,headers=header)#获取源代码
    datas,title=getinfo(html_oil)#解析数据
    headerbt = ['学科门类(专业)名称', '总分(A类考生)', 'A类考生单科(满分=100分)', 'A类考生单科(满分>100分)', '总分(B类考生)', 'B类考生单科(满分=100分)', 'B类考生单科(满分>100分)']#设置标题
    saveinfo(datas=datas,title=title,header=headerbt)#存储数据

    urls1 = 'https://yz.chsi.com.cn/kyzx/kp/202203/20220311/2172246781.html'#网址
    html_oil1 = htmls(url=urls1, headers=header)#获取源代码
    datas1,title1=getinfo1(html_oil1)#解析数据
    headerbt1 = ['学科门类(专业)名称', '总分(A类考生)', 'A类考生单科(满分=100分)', 'A类考生单科(满分>100分)', '总分(B类考生)', 'B类考生单科(满分=100分)', 'B类考生单科(满分>100分)']#设置标题
    saveinfo(datas=datas1,title=title1,header=headerbt1)#存储数据
import csv
import requests
from lxml import etree

html=[]#建立一个列表存储所有网址源代码
def htmls(headers):
    for i in range(1,50):
        urls = 'http://www.chinakaoyan.com/tiaoji/schoollist/random/20200215223418/pagenum/{}.shtml'#遍历获取所有网址
        html_oil=requests.get(url=urls,headers=headers).text#用requests方法拿到源代码
        html.append(html_oil)#存储所有源代码
    return html

datas = []  # 建立一个列表存储所有数据
#解析院校发布调剂信息数据
def getinfo(html,headers1):
    for a in html:#遍历所有源代码
        source = etree.HTML(a)#将传进去的源代码转变成_Element对象
        alls = source.xpath('//div[@]')[0]  # 获取所需数据总节点
        alls1 = alls.xpath('./div[@]')# 获取所需数据所有节点
        for i in alls1:
            data = i.xpath('./span[@]/a/@href')[0]# 遍历所有节点并获得数据
            data='http://www.chinakaoyan.com{}'.format(data)#获取学校信息网址
            xx_html = requests.get(url=data, headers=headers1).text#用requests方法拿到学校信息源代码
            datas.append(xx_html)#将所有源代码存入datas列表
        # print(datas)#打印结果
    return datas

#解析学校信息数据
def getinfo1(data):
    xx_datas = []# 建立一个列表存储所有数据
    for s in data:#遍历所有源代码
        source1 = etree.HTML(s)#将传进去的源代码转变成_Element对象
        xx_alls = source1.xpath('//div[@]/div[@]')# 获取所需数据总节点
        xx_data = []# 建立一个列表存储数据
        for xx_alls1 in xx_alls:
            xx_name = xx_alls1.xpath('./span[@]/text()')[0]
            ss_name=xx_alls1.xpath('./span[@]/text()')[0]#获取学校信息
            xx_data.append(xx_name)
            xx_data.append(ss_name)#将学校信息遍历存入xx_data列表
        xx_datas.append(xx_data)#将所有学校信息存入xx_datas列表
    print(xx_datas)#打印结果
    return xx_datas

# 存储为csv
def saveinfo(xx_datas,datasName,title):
  with open(datasName, 'w', newline='', encoding='utf-8') as f:
     writer = csv.writer(f)#打开csv文件
     writer.writerow(title)#写入标题
     writer.writerows(xx_datas)#写入数据

if __name__ == '__main__':
    header = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36 Edg/101.0.1210.53'
    }#UA伪装
    html=htmls(headers=header)#获取源代码
    datas=getinfo(html,headers1=header)#解析数据
    xx_datas=getinfo1(data=datas)#解析数据
    title=['学校名称','所在省市','专业名称','是否有公费名','发布时间','截止日期']#设置标题
    saveinfo(xx_datas=xx_datas,datasName='static/院校发布调剂信息.csv',title=title)#存储数据
二、echarts可视化图形展示 1.聚合柱状图

2.折线图

3.正负柱状图

4.玫瑰图

5.折线图

6.词云图

7.大屏展示

8.中国地图

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/993863.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号