怎么用Python爬取学校专业的数据
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关怎么用Python爬取学校专业的数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。前言今天各地的2020年高考
千家信息网最后更新 2026年11月02日怎么用Python爬取学校专业的数据
本篇文章给大家分享的是有关怎么用Python爬取学校专业的数据,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
前言
今天各地的2020年高考成绩陆续可以查询了,考生的志愿填报也随即提上日程。
俗话说,七分考,三分报。想必同学们一定不想因高分低报而浪费分数,也不想低分高报而与大学失之交臂。
如何获取数据
我们使用Python获取了中国教育在线网站的高校数据,共2904条。以下展示数据获取部分代码:
https://gkcx.eol.cn/school/search
具体思路如下:
分析网页,通过翻页可以发现数据是动态加载的,因此通过Chrome浏览器进行抓包分析获取真实的URL请求地址,并确定请求方式(get还是post);
使用requests请求网页数据;
使用json解析并提取数据;
使用pandas将数据保存到本地
首先打开网址,使用Chrome浏览器的检查功能,切换到Network-XHR,点击翻页进行网络数据抓包,很容易发现数据都是被封装在json中的,如下图所示:
切换到Headers处,确定请求的方法为post请求,得到数据请求的URL地址,其中page参数代表页数,通过遍历即可获取所有数据。代码如下:
# 导入包import numpy as npimport pandas as pdimport requestsimport jsonfrom fake_useragent import UserAgentimport 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", } # 发起请求 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) # 解析获取数据 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] # 区域 county_name = [i.get('county_name') for i in school_data] # 保存数据 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# 获取多页def get_all_page(all_page_num): # 存储表 df_all = pd.DataFrame() # 循环页数 for i in range(all_page_num): # 打印进度 print(f'正在获取第{i + 1}页的高校信息') # 调用函数 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_allif __name__ == '__main__': # 运行函数 df = get_all_page(all_page_num=148)通过上述程序,共获取到2904条数据,数据预览如下:
df.head()

以上就是怎么用Python爬取学校专业的数据,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。
数据
专业
学校
代码
函数
地址
更多
浏览器
知识
篇文章
类型
网页
部分
页数
分析
切换
浏览
失之交臂
低分
俗话
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
上海喔噻互联网科技有限公司
互联网科技公司税收优惠
科技企业和互联网企业
狮子座互联网科技有限公司
互联网科技上市公司
北京三清互联网科技
成都互联网科技公司100强
湖南诚度互联网科技有限公司
互联网软件和科技
科技赋能视角下互联网保险发展
2021互联网科技公司排名
东营紫格互联网科技
神州科技互联网有限公司
宁波跨境商互联网科技有限公司
广州梦谷互联网科技有限公司领导
容联科技互联网电商
中国新注册互联网科技
广州智享互联网科技
互联网科技自媒体灵感
互联网科技工作委员会主任
互联网科技公司税收优惠
喔噻互联网科技
中国互联网科技发展
南京欣网互联网科技
阿里巴巴算科技企业还是互联网
广州千川互联网科技有限公司
领航科技大厦互联网公司
上海乐五互联网科技有限公司
科技和互联网行业的特点