头部首发优志愿头部u_sign生成与TLS指纹处理! + 数据可视化技术讲解【Python爬虫】

news2024/9/24 19:25:42

目录

针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取

找对应得数据包

请求发现数据有加密

发现加密参数

搜索加密参数,好进行分析

分析过程

数据可视化


在这里插入图片描述

针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取

首先进行鼠标右键,进行数据抓包

在这里插入图片描述

找对应得数据包

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

请求发现数据有加密

## 1.引入库 代码如下(示例):

发现加密参数

在这里插入图片描述

搜索加密参数,好进行分析

在这里插入图片描述

分析过程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
In [2]:

!pip install jsonpath

Collecting jsonpath
  Downloading jsonpath-0.82.2.tar.gz (10 kB)
  Preparing metadata (setup.py) ... done
Building wheels for collected packages: jsonpath
  Building wheel for jsonpath (setup.py) ... done
  Created wheel for jsonpath: filename=jsonpath-0.82.2-py3-none-any.whl size=6724 sha256=3db960d7ff6f0bb132346f0e72e00349a7f6156100fc98c35ffda5cee786b2bf
  Stored in directory: /home/mw/.cache/pip/wheels/2c/2a/fa/87e26ec807b9a21dd0464eb1319cc3ad51b0c9e505fe6b7396
Successfully built jsonpath
Installing collected packages: jsonpath
Successfully installed jsonpath-0.82.2
import requests
import json
import hashlib
import jsonpath
import pandas as pd
for i in range(1, 2):
    data = '{"keyword":"","provincenames":[],"naturetypes":[],"edulevel":"","categories":[],"features":[],"pageindex":%s,"pagesize":20,"sort":11}&9sasji5owng41irkisvtjhlxhmrysrp1' % i
    md5 = hashlib.md5(data.encode())
    # md5.update(content.encode('utf-8'))
    sign = md5.hexdigest()
    print(sign)
    headers = {
        "Accept": "*/*",
        "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
        "Connection": "keep-alive",
        "Content-Type": "application/json",
        "Origin": "https://pv4y-pc.youzy.cn",
        "Referer": "https://pv4y-pc.youzy.cn/",
        "Sec-Fetch-Dest": "empty",
        "Sec-Fetch-Mode": "cors",
        "Sec-Fetch-Site": "same-site",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
        "sec-ch-ua": "\"Not_A Brand\";v=\"8\", \"Chromium\";v=\"120\", \"Google Chrome\";v=\"120\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"Windows\"",
        "u-sign": sign,
        "u-token": ""
    }
    url = "https://uwf7de983aad7a717eb.youzy.cn/youzy.dms.basiclib.api.college.query"
    data = {"keyword":"","provinceNames":[],"natureTypes":[],"eduLevel":"","categories":[],"features":[],"pageIndex":i,"pageSize":20,"sort":11}
    data = json.dumps(data, separators=(',', ':'))
    response = requests.post(url, headers=headers, data=data).json()
    # print(resps)
    # 学校名称
    data_name = jsonpath.jsonpath(response, '$..cnName')
    print(data_name)
    # 学校类型
    data_shape = jsonpath.jsonpath(response, '$..categories')
    # 综合指数
    data_comScore = jsonpath.jsonpath(response, '$..comScore')
    # 是不是本科
    data_eduLevel = jsonpath.jsonpath(response, '$..eduLevel')
    # 学校情况
    data_features = jsonpath.jsonpath(response, '$..features')
    # 排名
    data_ranking = jsonpath.jsonpath(response, '$..ranking')
    # 热度
    data_hits = jsonpath.jsonpath(response, '$..hits')
    # 部门
    data_belong = jsonpath.jsonpath(response, '$..belong')
    data = {'学校名称': data_name, '学校类型': data_shape, '综合指数': data_comScore, '学历': data_eduLevel,
            '学校情况':  data_features, '排名': data_ranking, '热度': data_hits,
            '部门': data_belong}
    df = pd.DataFrame(pd.DataFrame.from_dict(data, orient='index').values.T, columns=list(data.keys()))
    print(df)
    # df.to_csv("中国院校统计.csv",index=False)
643ff9499febb3ee34c95ffe0bb29cb0
['清华大学', '北京大学', '北京大学医学部', '中国科学院大学', '复旦大学', '复旦大学上海医学院', '上海交通大学', '上海交通大学医学院', '中国科学技术大学', '中国人民大学', '中国人民大学(苏州校区)', '浙江大学', '浙江大学医学院', '南京大学', '北京航空航天大学', '北京航空航天大学中法航空学院', '武汉大学', '同济大学', '南开大学', '中国人民解放军国防科技大学']
              学校名称  学校类型   综合指数   学历                      学校情况  排名       热度  \
0             清华大学  [综合]  93.59  ben  [985, 211, 国重点, 保研, 双一流]   1  1378946   
1             北京大学  [综合]  92.13  ben  [985, 211, 国重点, 保研, 双一流]   2  2155577   
2          北京大学医学部  [医药]  92.13  ben  [985, 211, 国重点, 保研, 双一流]   2   439830   
3          中国科学院大学  [综合]  79.95  ben            [国重点, 保研, 双一流]   3   474549   
4             复旦大学  [综合]  83.73  ben  [985, 211, 国重点, 保研, 双一流]   4  1091717   
5        复旦大学上海医学院  [医药]  83.73  ben  [985, 211, 国重点, 保研, 双一流]   4   321950   
6           上海交通大学  [综合]  84.72  ben  [985, 211, 国重点, 保研, 双一流]   5   934308   
7        上海交通大学医学院  [医药]  84.72  ben  [985, 211, 国重点, 保研, 双一流]   5   306197   
8         中国科学技术大学  [综合]  79.59  ben  [985, 211, 国重点, 保研, 双一流]   6   540224   
9           中国人民大学  [综合]  79.92  ben  [985, 211, 保研, 国重点, 双一流]   7   895950   
10    中国人民大学(苏州校区)  [综合]  79.92  ben       [985, 211, 保研, 双一流]   7   448989   
11            浙江大学  [综合]  86.16  ben  [985, 211, 国重点, 保研, 双一流]   8  1102871   
12         浙江大学医学院  [医药]  86.16  ben      [985, 211, 国重点, 双一流]   8   298237   
13            南京大学  [综合]  80.51  ben  [985, 211, 国重点, 保研, 双一流]   9  1068208   
14        北京航空航天大学  [理工]  77.19  ben       [985, 211, 保研, 双一流]  10   668746   
15  北京航空航天大学中法航空学院    []  77.19  ben                        []  10    11630   
16            武汉大学  [综合]  79.82  ben  [985, 211, 国重点, 保研, 双一流]  11  1167221   
17            同济大学  [综合]  77.02  ben  [985, 211, 国重点, 保研, 双一流]  12   694969   
18            南开大学  [综合]  76.11  ben  [985, 211, 国重点, 保研, 双一流]  13   725994   
19   中国人民解放军国防科技大学  [军事]  73.59  ben      [985, 211, 国重点, 双一流]  14   717849   

              部门  
0            教育部  
1            教育部  
2            教育部  
3            中科院  
4            教育部  
5            教育部  
6            教育部  
7            教育部  
8            中科院  
9            教育部  
10           教育部  
11           教育部  
12          浙江大学  
13           教育部  
14           工信部  
15                
16           教育部  
17           教育部  
18           教育部  
19  中国共产党中央军事委员会  

数据可视化

In [29]:

import pandas as pd
data=pd.read_csv("/home/mw/input/yuanxiao7383/中国院校统计.csv")
data

Out[29]:

学校名称学校类型综合指数学历学校情况排名热度部门
0清华大学['综合']93.59ben['985', '211', '国重点', '保研', '双一流']11377703教育部
1北京大学['综合']92.13ben['985', '211', '国重点', '保研', '双一流']22155049教育部
2北京大学医学部['医药']92.13ben['985', '211', '国重点', '保研', '双一流']2439644教育部
3中国科学院大学['综合']79.95ben['国重点', '保研', '双一流']3474239中科院
4复旦大学['综合']83.73ben['985', '211', '国重点', '保研', '双一流']41091254教育部
5复旦大学上海医学院['医药']83.73ben['985', '211', '国重点', '保研', '双一流']4321828教育部
6上海交通大学['综合']84.72ben['985', '211', '国重点', '保研', '双一流']5933901教育部
7上海交通大学医学院['医药']84.72ben['985', '211', '国重点', '保研', '双一流']5306102教育部
8中国科学技术大学['综合']79.59ben['985', '211', '国重点', '保研', '双一流']6539918中科院
9中国人民大学['综合']79.92ben['985', '211', '保研', '国重点', '双一流']7895604教育部
10中国人民大学(苏州校区)['综合']79.92ben['985', '211', '保研', '双一流']7448698教育部
11浙江大学['综合']86.16ben['985', '211', '国重点', '保研', '双一流']81102369教育部
12浙江大学医学院['医药']86.16ben['985', '211', '国重点', '双一流']8298159浙江大学
13南京大学['综合']80.51ben['985', '211', '国重点', '保研', '双一流']91067571教育部
14北京航空航天大学['理工']77.19ben['985', '211', '保研', '双一流']10668359工信部
15北京航空航天大学中法航空学院[]77.19ben[]1011509NaN
16武汉大学['综合']79.82ben['985', '211', '国重点', '保研', '双一流']111166705教育部
17同济大学['综合']77.02ben['985', '211', '国重点', '保研', '双一流']12694605教育部
18南开大学['综合']76.11ben['985', '211', '国重点', '保研', '双一流']13725646教育部
19中国人民解放军国防科技大学['军事']73.59ben['985', '211', '国重点', '双一流']14717346中国共产党中央军事委员会
20北京理工大学['理工']74.96ben['985', '211', '保研', '双一流']15669865工信部
21北京师范大学['师范']76.59ben['985', '211', '保研', '国重点', '双一流']16698563教育部
22北京师范大学(珠海校区)['综合']76.59ben['985', '211', '国重点', '保研', '双一流']16282745教育部
23哈尔滨工业大学['理工']76.45ben['985', '211', '国重点', '保研', '双一流']17724788工信部
24哈尔滨工业大学(威海)['理工']76.45ben['985', '211', '国重点', '保研', '双一流']17506924工信部
25哈尔滨工业大学(深圳)['理工']76.45ben['985', '211', '国重点', '保研', '双一流']17253199工信部
26西安交通大学['综合']77.40ben['985', '211', '国重点', '保研', '双一流']18879613教育部
27东南大学['综合']76.03ben['985', '211', '国重点', '保研', '双一流']19776147教育部
28东南大学医学院['医药']76.03ben['985', '211', '国重点', '保研', '双一流']19161457教育部
29华中科技大学['综合']77.98ben['985', '211', '国重点', '保研', '双一流']201055994教育部
...........................
1570阜阳职业技术学院['理工']0.00zhuan[]027130省政府
1571湖南信息职业技术学院['理工']0.00zhuan['省重点']032456省政府
1572秦皇岛职业技术学院['理工']0.00zhuan[]090203省政府
1573浙江纺织服装职业技术学院['理工']0.00zhuan['省属']024877省政府
1574广东农工商职业技术学院['综合']0.00zhuan['省属']030821省政府
1575江西旅游商贸职业学院['财经']0.00zhuan['省重点']026661省政府
1576唐山职业技术学院['综合']0.00zhuan['省属']041608省政府
1577沈阳航空职业技术学院['理工']0.00zhuan['省重点']027589省政府
1578七台河职业学院['综合']0.00zhuan['省属']019431省政府
1579甘肃有色冶金职业技术学院['理工']0.00zhuan['省属']019093省政府
1580宁夏职业技术学院['综合']0.00zhuan['省属']027452自治区政府
1581内蒙古警察职业学院['政法']0.00zhuan['省属']026005自治区政府
1582天津海运职业学院['综合']0.00zhuan['省重点']047443市政府
1583广东工贸职业技术学院['理工']0.00zhuan['省属']033165省政府
1584湘潭医卫职业技术学院['医药']0.00zhuan['省属']033889省政府
1585黑龙江建筑职业技术学院['理工']0.00zhuan['省属']032713省政府
1586温州职业技术学院['综合']0.00zhuan[]037202省政府
1587浙江东方职业技术学院['综合']0.00zhuan[]025348省教育厅
1588辽宁建筑职业学院['理工']0.00zhuan['省属']034613省政府
1589邢台医学高等专科学校['医药']0.00zhuan[]056330省政府
1590铁岭师范高等专科学校['师范']0.00zhuan['省属']032921省政府
1591广西水利电力职业技术学院['理工']0.00zhuan[]025498自治区政府
1592武汉外语外事职业学院['综合']0.00zhuan[]024622省教育厅
1593福建信息职业技术学院['理工']0.00zhuan['省属']024146省政府
1594平顶山工业职业技术学院['理工']0.00zhuan['省属']027876省政府
1595广东省外语艺术职业学院['艺术']0.00zhuan['省属']039208省政府
1596长沙航空职业技术学院['理工']0.00zhuan['省重点']0112407空军装备部
1597桂林师范高等专科学校['师范']0.00zhuan[]026748自治区政府
1598山东商务职业学院['综合']0.00zhuan['省属']043707省政府
1599延边职业技术学院['理工']0.00zhuan[]023005省政府

In [30]:

data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1600 entries, 0 to 1599
Data columns (total 8 columns):
学校名称    1600 non-null object
学校类型    1600 non-null object
综合指数    1600 non-null float64
学历      1600 non-null object
学校情况    1600 non-null object
排名      1600 non-null int64
热度      1600 non-null int64
部门      1588 non-null object
dtypes: float64(1), int64(2), object(5)
memory usage: 100.1+ KB

In [31]:

import jieba
# jieba.load_userdict('addwords.txt')
title_cut = []
for i in data.学校情况:
    j = jieba.lcut(i)
    title_cut.append(j)
Building prefix dict from the default dictionary ...
Dumping model to file cache /tmp/jieba.cache
Loading model cost 0.971 seconds.
Prefix dict has been built succesfully.

In [32]:

cut_words = jieba.lcut(str(data['学校情况'].values), cut_all = False)

In [33]:

file_path = open(r'/home/mw/input/data8378/stopwords.txt',encoding='utf-8')
stop_words = file_path.read()

In [34]:

# 新建一个空列表,用于存储删除停用词后的数据
new_data = []
for word in cut_words:
    if word not in stop_words:
        new_data.append(word)
print(new_data)
['[', '"', '[', "'", '985', "'", "'", '211', "'", "'", '国', '重点', "'", "'", '保研', "'", "'", '双', '一流', "'", ']', '"', '"', '[', "'", '985', "'", "'", '211', "'", "'", '国', '重点', "'", "'", '保研', "'", "'", '双', '一流', "'", ']', '"', '"', '[', "'", '985', "'", "'", '211', "'", "'", '国', '重点', "'", "'", '保研', "'", "'", '双', '一流', "'", ']', '"', '...', "'", '[', ']', "'", '"', '[', "'", '省属', "'", ']', '"', "'", '[', ']', "'", ']']

In [35]:

from nltk import FreqDist
freq_list = FreqDist(new_data)
# 返回词语列表
most_common_words = freq_list.most_common()
print(most_common_words)
[("'", 36), ('"', 8), ('[', 7), (']', 7), ('985', 3), ('211', 3), ('国', 3), ('重点', 3), ('保研', 3), ('双', 3), ('一流', 3), ('...', 1), ('省属', 1)]

In [36]:

from pyecharts import options as opts
from pyecharts.charts import Page, WordCloud
from pyecharts.globals import SymbolType
def wordcloud_base() -> WordCloud:
    c = (
        WordCloud()
        .add("", most_common_words, word_size_range=[20, 100])
        .set_global_opts(title_opts=opts.TitleOpts(title="美团标题标签可视化"))
    )
    return c

wd = wordcloud_base()
wd.render_notebook()

Out[36]:

In [25]:

import numpy as np 
data["综合指数"] = data["综合指数"].astype(np.int64)
data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1600 entries, 0 to 1599
Data columns (total 8 columns):
学校名称    1600 non-null object
学校类型    1600 non-null object
综合指数    1600 non-null int64
学历      1600 non-null object
学校情况    1600 non-null object
排名      1600 non-null int64
热度      1600 non-null int64
部门      1588 non-null object
dtypes: int64(3), object(5)
memory usage: 100.1+ KB

In [26]:

data['学校类型']=data['学校类型'].apply(lambda x: x.replace('[', '').replace(']', ''))
data['学校类型']

Out[26]:

0       '综合'
1       '综合'
2       '医药'
3       '综合'
4       '综合'
5       '医药'
6       '综合'
7       '医药'
8       '综合'
9       '综合'
10      '综合'
11      '综合'
12      '医药'
13      '综合'
14      '理工'
15          
16      '综合'
17      '综合'
18      '综合'
19      '军事'
20      '理工'
21      '师范'
22      '综合'
23      '理工'
24      '理工'
25      '理工'
26      '综合'
27      '综合'
28      '医药'
29      '综合'
        ... 
1570    '理工'
1571    '理工'
1572    '理工'
1573    '理工'
1574    '综合'
1575    '财经'
1576    '综合'
1577    '理工'
1578    '综合'
1579    '理工'
1580    '综合'
1581    '政法'
1582    '综合'
1583    '理工'
1584    '医药'
1585    '理工'
1586    '综合'
1587    '综合'
1588    '理工'
1589    '医药'
1590    '师范'
1591    '理工'
1592    '综合'
1593    '理工'
1594    '理工'
1595    '艺术'
1596    '理工'
1597    '师范'
1598    '综合'
1599    '理工'
Name: 学校类型, Length: 1600, dtype: object

In [27]:

# 查看缺失值
data.isnull().any()

Out[27]:

学校名称    False
学校类型    False
综合指数    False
学历      False
学校情况    False
排名      False
热度      False
部门       True
dtype: bool

In [28]:

# 查看数据结构
data.describe()

Out[28]:

综合指数排名热度
count1600.0000001600.0000001.600000e+03
mean47.107500477.6768751.650321e+05
std25.032106406.0796761.851948e+05
min0.0000000.0000002.730000e+03
25%55.00000043.7500005.205350e+04
50%57.000000435.5000009.286500e+04
75%60.000000835.2500002.108105e+05
max93.0000001235.0000002.155049e+06

In [10]:

data2 = data.groupby('学校名称')['综合指数'].agg(['mean', 'median'])
data2

Out[10]:

meanmedian
学校名称
七台河职业学院00
三亚中瑞酒店管理职业学院00
三亚学院5555
三峡大学6262
三峡大学科技学院5757
三明学院5858
三江学院5656
三门峡社会管理职业学院00
三门峡职业技术学院00
上海中侨职业技术大学5555
上海中医药大学6565
上海交通大学8484
上海交通大学医学院8484
上海体育大学6464
上海健康医学院5959
上海公安学院00
上海兴伟学院5656
上海商学院6060
上海外国语大学6868
上海外国语大学贤达经济人文学院5555
上海大学7171
上海对外经贸大学6565
上海工程技术大学6161
上海师范大学6565
上海师范大学天华学院5656
上海应用技术大学6161
上海建桥学院5555
上海思博职业技术学院00
上海戏剧学院6565
上海政法学院6464
.........
黄冈师范学院5959
黄冈职业技术学院00
黄山学院5959
黄河交通学院5757
黄河科技学院5656
黄淮学院5757
黎明职业大学00
黑河学院5656
黑龙江东方学院5555
黑龙江中医药大学6060
黑龙江八一农垦大学5858
黑龙江外国语学院5555
黑龙江大学6262
黑龙江工业学院5757
黑龙江工商学院5555
黑龙江工程学院5858
黑龙江工程学院昆仑旅游学院5555
黑龙江建筑职业技术学院00
黑龙江科技大学5959
黑龙江财经学院5555
黔南民族师范学院5757
齐鲁医药学院5757
齐鲁工业大学6060
齐鲁师范学院5959
齐鲁理工学院5555
齐齐哈尔医学院5858
齐齐哈尔大学5858
齐齐哈尔工程学院5454
齐齐哈尔高等师范专科学校00
龙岩学院5858

1600 rows × 2 columns

In [11]:

data_brand=data2.sort_values(by='median', ascending=True).tail(10)
data_brand

Out[11]:

meanmedian
学校名称
南京大学8080
复旦大学上海医学院8383
复旦大学8383
上海交通大学8484
上海交通大学医学院8484
浙江大学8686
浙江大学医学院8686
北京大学医学部9292
北京大学9292
清华大学9393

In [12]:

from pyecharts.charts import Bar
from pyecharts import options as opts
bar = (Bar()
       .add_xaxis(list(data_brand.index))
       .add_yaxis('',[int(i) for i in(round(data_brand['median']))])
        .set_global_opts(title_opts=opts.TitleOpts(title="中国大学综合指数概况", subtitle="中位数"),xaxis_opts=opts.AxisOpts(name_rotate=0,name="综合指数",axislabel_opts={"rotate":60}))

        )
bar.render_notebook()

Out[12]:

In [13]:

data3 = data.groupby('学校名称')['热度'].agg(['mean', 'median'])
data3

Out[13]:

meanmedian
学校名称
七台河职业学院1943119431
三亚中瑞酒店管理职业学院2175521755
三亚学院104658104658
三峡大学501787501787
三峡大学科技学院8998589985
三明学院9871298712
三江学院101231101231
三门峡社会管理职业学院2069220692
三门峡职业技术学院3756137561
上海中侨职业技术大学5780257802
上海中医药大学214334214334
上海交通大学933901933901
上海交通大学医学院306102306102
上海体育大学7623376233
上海健康医学院115812115812
上海公安学院106291106291
上海兴伟学院3353233532
上海商学院155186155186
上海外国语大学302454302454
上海外国语大学贤达经济人文学院9233192331
上海大学607608607608
上海对外经贸大学243112243112
上海工程技术大学224267224267
上海师范大学407476407476
上海师范大学天华学院7667476674
上海应用技术大学291811291811
上海建桥学院188996188996
上海思博职业技术学院3344733447
上海戏剧学院116150116150
上海政法学院219194219194
.........
黄冈师范学院104892104892
黄冈职业技术学院4299742997
黄山学院6055060550
黄河交通学院6036760367
黄河科技学院9614696146
黄淮学院152150152150
黎明职业大学3218632186
黑河学院6955569555
黑龙江东方学院5041750417
黑龙江中医药大学169616169616
黑龙江八一农垦大学125798125798
黑龙江外国语学院4922949229
黑龙江大学344645344645
黑龙江工业学院121327121327
黑龙江工商学院4207142071
黑龙江工程学院117734117734
黑龙江工程学院昆仑旅游学院3410434104
黑龙江建筑职业技术学院3271332713
黑龙江科技大学238421238421
黑龙江财经学院5588155881
黔南民族师范学院5521455214
齐鲁医药学院121623121623
齐鲁工业大学329048329048
齐鲁师范学院134712134712
齐鲁理工学院9949399493
齐齐哈尔医学院120487120487
齐齐哈尔大学164782164782
齐齐哈尔工程学院4797147971
齐齐哈尔高等师范专科学校2889728897
龙岩学院8067780677

In [14]:

data_line=data3.sort_values(by='median', ascending=True).tail(10)
data_line

Out[14]:

meanmedian
学校名称
四川大学10188811018881
苏州大学10540401054040
华中科技大学10559941055994
南京大学10675711067571
复旦大学10912541091254
浙江大学11023691102369
吉林大学11139041113904
武汉大学11667051166705
清华大学13777031377703
北京大学21550492155049

In [15]:

from pyecharts.charts import Line
line = (Line()
       .add_xaxis(list(data_line.index))
       .add_yaxis('',[int(i) for i in(round(data_line['mean']))])
        .set_global_opts(title_opts=opts.TitleOpts(title="中国大学热度概况top10", subtitle="平均"),xaxis_opts=opts.AxisOpts(name_rotate=0,name="热度",axislabel_opts={"rotate":60}))

        )
line.render_notebook()

Out[15]:

In [16]:

data["部门"].unique()

Out[16]:

array(['教育部', '中科院', '浙江大学', '工信部', nan, '中国共产党中央军事委员会', '公安部', '社科院',
       '中国人民解放军海军', '市政府', '省政府', '国民委', '中国人民解放军陆军', '国卫委', '统战部',
       '中国人民解放军空军', '交通运输部', '国体局', '省教育厅', '自治区政府', '海关总署',
       '交通运输部(中国民用航空局)', '新疆生产建设兵团', '中华妇女联合会', '中华全国总工会', '市教委',
       '河南省体育局', '应管部', '地震局', '自治区教育厅', '香港特别行政区教育局', '澳门特别行政区政府',
       '中华人民共和国澳门特别行政区高等教育局', '中国人民解放军火箭军', '香港特别行政区政府教育局', '香港特别行政区政府',
       '上海市 中国科学院', '中国人民武装警察部队总部', '国家军委', '外交部', '解放军战略支援部队航天系统部',
       '中国人民解放军战略支援部队', '共青团', '中国澳门特区政府', '中央办公厅', '司法部', '中国人民武装警察部队',
       '中国人民武装警察部队政治部', '解放军成都军区', '中央军委联合参谋部', '中国人民解放军空军总部',
       '中国共产党中央军事委员会政治工作部', '解放军兰州军区', '香港特别行政区政府高等教育署', '中国人民解放军',
       '解放军总参谋部', '澳门特别行政区社会文化司', '空军装备部'], dtype=object)

In [17]:

from collections import Counter
# 使用 Counter 统计元素出现次数
counts = Counter(data["部门"])

# 使用 sorted() 函数对出现次数进行降序排序
sorted_counts = sorted(counts.items(), key=lambda x: x[1], reverse=True)

# 打印结果
for element, count in sorted_counts:
    print(element, count)
省政府 780
省教育厅 386
教育部 95
市政府 89
自治区政府 80
市教委 38
自治区教育厅 21
nan 12
工信部 9
中国人民解放军陆军 8
香港特别行政区教育局 7
国民委 6
公安部 5
中国人民解放军空军 5
中国人民解放军海军 4
新疆生产建设兵团 3
中国人民武装警察部队 3
解放军总参谋部 3
中科院 2
统战部 2
交通运输部(中国民用航空局) 2
应管部 2
香港特别行政区政府 2
中国人民武装警察部队总部 2
浙江大学 1
中国共产党中央军事委员会 1
社科院 1
国卫委 1
交通运输部 1
国体局 1
海关总署 1
中华妇女联合会 1
中华全国总工会 1
河南省体育局 1
地震局 1
澳门特别行政区政府 1
中华人民共和国澳门特别行政区高等教育局 1
中国人民解放军火箭军 1
香港特别行政区政府教育局 1
上海市 中国科学院 1
国家军委 1
外交部 1
解放军战略支援部队航天系统部 1
中国人民解放军战略支援部队 1
共青团 1
中国澳门特区政府 1
中央办公厅 1
司法部 1
中国人民武装警察部队政治部 1
解放军成都军区 1
中央军委联合参谋部 1
中国人民解放军空军总部 1
中国共产党中央军事委员会政治工作部 1
解放军兰州军区 1
香港特别行政区政府高等教育署 1
中国人民解放军 1
澳门特别行政区社会文化司 1
空军装备部 1

In [19]:

from pyecharts import options as opts
from pyecharts.charts import Radar
# 数据
data = [
    {"value": [780, 386, 95, 89, 80, 38], "name": "实际值"},
    {"value": [1000, 1000, 1000, 1000, 1000, 1000], "name": "目标值"}
]

# 指示器名称
indicator = [
    {"name": "省政府", "max": 1000},
    {"name": "省教育厅", "max": 1000},
    {"name": "教育部", "max": 1000},
    {"name": "自治区政府", "max": 1000},
    {"name": "市教委", "max": 1000},
    {"name": "自治区教育厅", "max": 1000},
]

# 绘图
radar = (
    Radar()
    .set_global_opts(title_opts=opts.TitleOpts(title="中国院校部门雷达图"))
    .add_schema(schema=indicator)
    .add("数据", data, label_opts=opts.LabelOpts(is_show=False))
)

# 展示
radar.render_notebook()

Out[19]:

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

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

相关文章

制作PPT找了一个校徽是方形的,如何裁剪为圆形的。

问题描述&#xff1a;制作PPT找了一个校徽是方形的&#xff0c;如何裁剪为圆形的。 问题解决&#xff1a;使用一个在线圆形裁剪软件即可。 网址为&#xff1a; https://crop-circle.imageonline.co/cn/#google_vignette

计算机组成原理综合2

21、和外存储器相比&#xff0c;内存储器的特点是________。C A. 容量大、速度快、成本低 B. 容量大、速度慢、成本高 C. 容量小、速度快、成本高 D. 容量小、速度快、成本低 22、某计算机字长16位&#xff0c;存储器容量64KB&#xff0c;若按字编址&#xf…

网络基础(十二):ACL与NAT

目录 一、ACL 1、ACL的概述 2、ACL的分类 3、ACL的应用 4、ACL的组成和基本原理 ​编辑 5、ACL的配置 5.1配置基本ACL 5.2配置高级ACL 二、NAT 1、NAT的概述 2、NAT的分类 3、NAT的工作原理 4、静态NAT的配置 5、动态NAT的配置 6、NAPT&#xff08;端口映射&am…

01AVue入门(持续学习中)

1.使用AVue开发简单的前端页面直接简单到起飞,他是Element PlusVueVite开发的,不需要向元素的前端代码一样一个组件要传很多参数,他可以使用Json文本来控制我们要传入的数据结构来决定显示什么 //我使用的比较新,我们也可以使用cdn直接使用script标签直接引入 2.开发中遇到的坑…

期货平仓日历(期货平仓日期汇总)

什么是期货平仓日历&#xff1f; 期货是一种高风险高收益的投资品种。而期货交易不同于股票等其他投资品种的交易&#xff0c;期货交易需要在一定时间内才能买卖。而期货平仓日历就是指期货交易中规定的所有合约的平仓日期汇总。 常见期货平仓日期和时间&#xff1f; 不同的…

KylinV10 安装 MySQL 教程(可防踩雷)

KylinV10 安装 MySQL 教程&#xff08;可防踩雷&#xff09; 1、直接用 apt 快捷安装 MySQL $ sudo apt-get update #更新软件源 $ sudo apt-get install mysql-server #安装mysql然后你会发现&#xff0c;KylinV10 安装畅通无阻&#xff0c;并没有设置密码的场景&#xff0c…

Vue: node-sass 无法为当前环境找到绑定, Windows64-bit, 重新安装node-sass失败

参照两位大神的文章总结: 参考1: 解决Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x-CSDN博客 参考2: 前端开发环境搭建踩坑笔记——npm install node-sass安装失败的解决方案-CSDN博客 总结: 管理员运行 先卸载n…

测试自动化平台 | 测试开发工程师的进阶之路

一、测试工程师的现状 很多测试小伙伴在工作中有时会比较迷茫&#xff0c;不知该怎样突破瓶颈&#xff0c;更好的发展。 那么测试人员究竟该如何打破瓶颈继续向上提升呢&#xff1f;如果你苦于不知所措&#xff0c;又满怀斗志向上的话&#xff0c;不妨一起聊聊。测试职业发展…

Compose 组合项 - 滑动列表 LazyColumn、LazyRow

一、概念 可滚动&#xff0c;类似RecyclerView&#xff08; Column、Row 用 Modifier 设置滚动是相当于ScrollView&#xff09;。 从 Navigation 返回后丢失状态&#xff08;跳到头部&#xff09; &#xff1a;将 LazyListState 提升到 Screen 级别&#xff0c;不用放到 ViewMo…

【Axure RP9】实现登入效验及实现左侧菜单栏跳转各页面

目录 一 效验简介 1.1 校验好处 1.2 应用场景 二 登入校验 2.1 效果 2.2 实现流程 三 左边菜单栏左侧菜单栏跳转各页面 3.1 效果 3.2 实现图 一 效验简介 1.1 校验好处 提高安全性&#xff1a; 在传统的用户名和密码登录的基础上&#xff0c;引入了另一种或多种验证…

MyBatis-Plus是什么?能干嘛?

MyBatis-Plus是一个基于MyBatis的增强工具&#xff0c;旨在简化开发、提高效率。它提供了通用的mapper和service&#xff0c;可以在不编写任何SQL语句的情况下&#xff0c;快速实现对单表的CRUD、批量、逻辑删除、分页等操作。 MyBatis-Plus的主要特性包括&#xff1a; 无侵入…

【PostgreSQL内核学习(十八)—— 存储管理(存储管理的体系结构)】

存储管理 概述存储管理器的体系结构存储管理器的主要任务读写元组过程 声明&#xff1a;本文的部分内容参考了他人的文章。在编写过程中&#xff0c;我们尊重他人的知识产权和学术成果&#xff0c;力求遵循合理使用原则&#xff0c;并在适用的情况下注明引用来源。 本文主要参考…

最新鸿蒙HarmonyOS 使用Progress、Toggle开发一个接单界面

Progress 进度条组件&#xff0c;用于显示内容加载或操作处理等进度。 接口 Progress(options: {value: number, total?: number, type?: ProgressType}) Toggle组件提供勾选框样式、状态按钮样式及开关样式。 接口 Toggle(options: { type: ToggleType, isOn?: boolean …

SpringBoot actuator应用监控

文章目录 引入依赖端点(Endpoints)端点种类端点开启配置暴露端点手动暴露端点 端点保护引入spring security依赖配置security 端点响应缓存访问端点路径修改CORS跨域支持健康信息(/actuator/health)自定义healthInfo 应用信息(/actuator/info) 监控信息可视化引入依赖配置查看配…

【LeetCode刷题】--245.最短单词距离III

245.最短单词距离III class Solution {public int shortestWordDistance(String[] wordsDict, String word1, String word2) {int len wordsDict.length;int ans len;if(word1.equals(word2)){int prev -1;for(int i 0;i<len;i){String word wordsDict[i];if(word.equa…

Unity中Shader测试常用的UGUI功能简介

文章目录 前言一、锚点1、锚点快捷修改位置2、使用Anchor Presets快捷修改3、Anchor Presets界面按下 Shift 可以快捷修改锚点和中心点位置4、Anchor Presets界面按下 Alt 可以快捷修改锚点位置、UI对象位置 和 长宽大小 二、Canvas画布1、UGUI中 Transform 变成了 Rect Transf…

One Wire协议解析

引言 One Wire是一种串行扩展总线技术&#xff0c;由DALLAS公司推出。它采用一根信号线进行通信&#xff0c;既传输时钟信号又传输数据&#xff0c;而且能够进行双向通信。由于其节省I/O口线、资源结构简单、成本低廉、便于总线扩展和维护等诸多优点&#xff0c;One Wire在许多…

go语言指针变量定义及说明

go语言指针主要需要记住两个特殊符号&#xff0c; 一个是 & 用来获取变量对应的内存地址 另一个是 * 用来获取指针对应的变量值 下面是个最简单的go语言指针说明 package mainimport "fmt"//指针为内存地址func main() {var a string "指针对应的变量&…

2023数字化发展推动家庭教育走向科学评价

近年来,随着人工智能、大数据、区块链等新一代数字技术的教育应用,在实践探索中形成了无感式数据采集、智能化诊断分析、即时性精准反馈等新样态,为破解教育评价难题提供了新的可能。 过去,传统教育评价体系是学校以及家庭教育最核心的焦虑和压力来源之一。“唯分数论”以及“…

实验一传统的结构化的软件工程方法、实验二面向对象的软件工程、实验三软件测试

背景&#xff1a; 实验一 传统的结构化的软件工程方法 1实验目的 了解传统的软件工程方法的基本原理&#xff0c;掌握软件生命周期的全过程依次划分为需求分析、总体设计、详细设计、编码、测试、维护等几个重要阶段。每个阶段所要完成的任务以及提交的文档。 2实验内容 …