濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 用Python爬取各大高校并可視化幫弟弟選大學(xué),弟弟直呼牛X

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

熱門(mén)標(biāo)簽:地圖標(biāo)注自己和別人標(biāo)注區(qū)別 ai電銷(xiāo)機(jī)器人的優(yōu)勢(shì) 孝感營(yíng)銷(xiāo)電話(huà)機(jī)器人效果怎么樣 打電話(huà)機(jī)器人營(yíng)銷(xiāo) 南陽(yáng)打電話(huà)機(jī)器人 聊城語(yǔ)音外呼系統(tǒng) 商家地圖標(biāo)注海報(bào) 海外網(wǎng)吧地圖標(biāo)注注冊(cè) 騰訊地圖標(biāo)注沒(méi)法顯示

一、獲取url

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

刷新頁(yè)面,觀察url,通過(guò)對(duì)Reponse的分析找到真正的url為:https://api.eol.cn/gkcx/api/

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

再點(diǎn)擊Headers,查看請(qǐng)求參數(shù)

請(qǐng)求方式為POST

二、發(fā)送請(qǐng)求

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

# 導(dǎo)入包
import numpy as np
import pandas as pd
import requests
import json
from fake_useragent import UserAgent
import time

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

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

    # 構(gòu)造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ā)起請(qǐng)求
    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']

    # 學(xué)校名
    school_name = [i.get('name') for i in school_data]
    # 隸屬部門(mén)
    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]
    # 辦學(xué)類(lèi)型
    level_name = [i.get('level_name') for i in school_data]
    # 院校類(lèi)型
    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ù)分析,再寫(xiě)入Excel存儲(chǔ)。

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

    # 循環(huán)頁(yè)數(shù)
    for i in range(all_page_num):
        # 打印進(jìn)度
        print(f'正在獲取第{i + 1}頁(yè)的高校信息')
        # 調(diào)用函數(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


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

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

五、運(yùn)行代碼

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

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

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

地圖

各個(gè)省的高校層次分布

全國(guó)高校類(lèi)型分布

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

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

您可能感興趣的文章:
  • Python爬蟲(chóng)實(shí)戰(zhàn)之爬取京東商品數(shù)據(jù)并實(shí)實(shí)現(xiàn)數(shù)據(jù)可視化
  • Python爬取股票信息,并可視化數(shù)據(jù)的示例
  • Python爬取數(shù)據(jù)并實(shí)現(xiàn)可視化代碼解析
  • python如何爬取網(wǎng)站數(shù)據(jù)并進(jìn)行數(shù)據(jù)可視化

標(biāo)簽:揚(yáng)州 聊城 南寧 楊凌 迪慶 撫州 六盤(pán)水 牡丹江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《用Python爬取各大高校并可視化幫弟弟選大學(xué),弟弟直呼牛X》,本文關(guān)鍵詞  用,Python,爬取,各大,高校,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《用Python爬取各大高校并可視化幫弟弟選大學(xué),弟弟直呼牛X》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于用Python爬取各大高校并可視化幫弟弟選大學(xué),弟弟直呼牛X的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    二连浩特市| 治多县| 安远县| 宁乡县| 纳雍县| 东源县| 婺源县| 乌兰浩特市| 平利县| 珠海市| 刚察县| 彭山县| 莱州市| 通辽市| 汕头市| 和平区| 蛟河市| 连平县| 绿春县| 伊金霍洛旗| 萍乡市| 崇仁县| 武宁县| 潜山县| 台前县| 德钦县| 普兰县| 旬阳县| 临桂县| 高邮市| 宣武区| 庆阳市| 八宿县| 桐城市| 洛南县| 嘉鱼县| 兰西县| 申扎县| 临洮县| 东乌| 栾川县|