欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用Python爬取各大高校并可視化幫弟弟選大學,弟弟直呼牛X

 更新時間:2021年06月10日 15:48:44   作者:一條IT  
高考結束了,接下來最重要的就是玩玩玩,然后準備報志愿吧.中國教育在線網(wǎng)顯示國內(nèi)目前共有2857所高等院校,報一個理想的學校簡直是千里挑一.正好表弟求著我讓我?guī)退x學校,我想著十年寒窗苦讀也不容易不如就用python幫幫他.分析一下目前國內(nèi)的大學,需要的朋友可以參考下

一、獲取url

打開中國教育在線網(wǎng),按 F12,頂部選擇NetWork,選擇XHR

刷新頁面,觀察url,通過對Reponse的分析找到真正的url為:https://api.eol.cn/gkcx/api/

數(shù)據(jù)存儲在Json中。

在這里插入圖片描述

再點擊Headers,查看請求參數(shù)

在這里插入圖片描述

請求方式為POST

二、發(fā)送請求

拿到url,我們就可以利用requests模擬瀏覽器發(fā)送請求,拿到返回的Json數(shù)據(jù)。代碼如下:

# 導入包
import numpy as np
import pandas as pd
import requests
import json
from fake_useragent import UserAgent
import time

# 獲取一頁
def get_one_page(page_num):
    # 獲取URL
    url = 'https://api.eol.cn/gkcx/api/'

    # 構造headers
    headers = {
        'User-Agent': UserAgent().random,
        'Origin': 'https://gkcx.eol.cn',
        'Referer': 'https://gkcx.eol.cn/school/search?province=&schoolflag=&recomschprop=',
    }

    # 構造data
    data = {
        'access_token': "",
        'admissions': "",
        'central': "",
        'department': "",
        'dual_class': "",
        'f211': "",
        'f985': "",
        'is_dual_class': "",
        'keyword': "",
        'page': page_num,
        'province_id': "",
        'request_type': 1,
        'school_type': "",
        'size': 20,
        'sort': "view_total",
        'type': "",
        'uri': "apigkcx/api/school/hotlists",
    }

    # 發(fā)起請求
    try:
        response = requests.post(url=url, data=data, headers=headers)
    except Exception as e:
        print(e) 
        time.sleep(3) 
        response = requests.post(url=url, data=data, headers=headers)

三、解析json數(shù)據(jù)

根據(jù)Response返回的Json格式,解析出我們想要的內(nèi)容,代碼如下:

# 解析獲取數(shù)據(jù)
    school_data = json.loads(response.text)['data']['item']

    # 學校名
    school_name = [i.get('name') for i in school_data]
    # 隸屬部門
    belong = [i.get('belong') for i in school_data]
    # 高校層次
    dual_class_name = [i.get('dual_class_name') for i in school_data]
    # 是否985
    f985 = [i.get('f985') for i in school_data]
    # 是否211
    f211 = [i.get('f211') for i in school_data]
    # 辦學類型
    level_name = [i.get('level_name') for i in school_data]
    # 院校類型
    type_name = [i.get('type_name') for i in school_data]
    # 是否公辦
    nature_name = [i.get('nature_name') for i in school_data]
    # 人氣值
    view_total = [i.get('view_total') for i in school_data]
    # 省份
    province_name = [i.get('province_name') for i in school_data]
    # 城市
    city_name = [i.get('city_name') for i in school_data]
    # 區(qū)域
    county_name = [i.get('county_name') for i in school_data]
    
    # 保存數(shù)據(jù)
    df_one = pd.DataFrame({
        'school_name': school_name,
        'belong': belong,
        'dual_class_name': dual_class_name,
        'f985': f985,
        'f211': f211,
        'level_name': level_name,
        'type_name': type_name,
        'nature_name': nature_name,
        'view_total': view_total,
        'province_name': province_name,
        'city_name': city_name,
        'county_name': county_name,
    })

    return df_one

四、存入Excel

先將數(shù)據(jù)存入Pandas,用于做數(shù)據(jù)分析,再寫入Excel存儲。

# 獲取多頁
def get_all_page(all_page_num):
    # 存儲表
    df_all = pd.DataFrame()

    # 循環(huán)頁數(shù)
    for i in range(all_page_num):
        # 打印進度
        print(f'正在獲取第{i + 1}頁的高校信息')
        # 調用函數(shù)
        df_one = get_one_page(page_num=i+1)
        # 追加
        df_all = df_all.append(df_one, ignore_index=True)
        # 休眠
        time.sleep(np.random.uniform(2))

    return df_all


# 運行函數(shù)
df_school = get_all_page(all_page_num=143)

# 讀出數(shù)據(jù)
df_school.to_excel('./data/全國高校數(shù)據(jù).xlsx', index=False)

五、運行代碼

在這里插入圖片描述

六、數(shù)據(jù)展示

在這里插入圖片描述

七、數(shù)據(jù)可視化

1.各省市地區(qū)高校數(shù)量分布 柱形圖:

在這里插入圖片描述

地圖

在這里插入圖片描述

各個省的高校層次分布

在這里插入圖片描述

全國高校類型分布

在這里插入圖片描述

有了上面的數(shù)據(jù),是不是對全國的高校有一定了解了

到此這篇關于用Python爬取各大高校并可視化幫弟弟選大學,弟弟直呼牛X的文章就介紹到這了,更多相關Python爬取數(shù)據(jù)并可視化內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python Pandas數(shù)據(jù)中對時間的操作

    Python Pandas數(shù)據(jù)中對時間的操作

    這篇文章主要介紹了Python Pandas數(shù)據(jù)中對時間的操作,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • 聊聊prod()與cumprod()區(qū)別cumsum()

    聊聊prod()與cumprod()區(qū)別cumsum()

    這篇文章主要介紹了prod()與cumprod()區(qū)別cumsum(),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python 表格打印代碼實例解析

    python 表格打印代碼實例解析

    這篇文章主要介紹了python 表格打印代碼實例解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-10-10
  • python如何查看微信消息撤回

    python如何查看微信消息撤回

    這篇文章主要為大家詳細介紹了python實現(xiàn)查看微信消息撤回的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python接口自動化之正則用例參數(shù)化的示例詳解

    python接口自動化之正則用例參數(shù)化的示例詳解

    這篇文章主要介紹了python接口自動化之正則用例參數(shù)化,它是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2022-07-07
  • python中@contextmanager實例用法

    python中@contextmanager實例用法

    在本篇文章里小編給大家整理的是一篇關于python中@contextmanager實例用法,對此有興趣的朋友們可以學習下。
    2021-02-02
  • Python實現(xiàn)拷貝/刪除文件夾的方法詳解

    Python實現(xiàn)拷貝/刪除文件夾的方法詳解

    這篇文章主要介紹了Python實現(xiàn)拷貝/刪除文件夾的方法,涉及Python針對文件夾的遞歸、遍歷、拷貝、刪除等相關操作技巧與注意事項,需要的朋友可以參考下
    2018-08-08
  • 解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過的問題

    解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過的問題

    這篇文章主要介紹了解決pytorch讀取自制數(shù)據(jù)集出現(xiàn)過的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • django xadmin 管理器常用顯示設置方式

    django xadmin 管理器常用顯示設置方式

    這篇文章主要介紹了django xadmin 管理器常用顯示設置方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • pytorch?dataset實戰(zhàn)案例之讀取數(shù)據(jù)集的代碼

    pytorch?dataset實戰(zhàn)案例之讀取數(shù)據(jù)集的代碼

    這篇文章主要介紹了pytorch?dataset實戰(zhàn)案例讀取數(shù)據(jù)集的相關知識,這段代碼可以作為讀取數(shù)據(jù)集的一個DataSet類的基礎類,可以擴充進行修改,以后有類似需要可以拿過來修改,本文結合實例代碼給大家詳細講解,需要的朋友可以參考下
    2022-10-10

最新評論