助力高考,利用python获取本专科专业选考科目要求

大家好,今天我们来利用python技术助力高考,获取网上的本专科专业选考科目要求,用到的Python模块有:Requests、Json、BeautifulSoup、Pandas ,主要思路是Requests获取接口请求,利用BeautifulSoup 解析网站的数据,最后利用Pandas库生成Excel文件。本期我们来获取江苏省,历史类的所有高校的专业选考科目要求实现的结果展示如下:

截屏2024-06-15 下午7.07.07

截屏2024-06-15 下午7.10.11

下面我们就来看看如何实现:

首先打开网址我们按F12检查网站信息,我们选择江苏,首选科目选择历史,点击查询 浏览器 NetWork中就会显示出调用的URL,和相对应的请求参数

截屏2024-06-15 下午9.23.50

请求参数,经过分析 我们可以得出 江苏代码32 ,历史类代码08 记住这个在后面查看详情里面用到。

截屏2024-06-15 下午7.14.44

这时我们通过requests请求就能得到系统返回的json数据。

下面我们来分析详情的参数:

yxdm为学校编码,yxmc为学校名称,xkm为所选科目:08代表历史

截屏2024-06-15 下午9.08.48

我们利用BeautifulSoup模块进行解析,最终提取出所有的信息导出到excel。

截屏2024-06-15 下午7.21.36

具体实现代码如下:

import requests
from urllib.parse import urlencode
from urllib.parse import unquote
import time
import hashlib
import pandas as pd
import random
from bs4 import BeautifulSoup
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36',
}
​
json_data = {'ssdm': '32',
'sxkm': '08',
'kskms': '',
'xkml': '',
'qttj': '',
'cxtj': ''
}
​
def get_xk(yxdm, ssmc, zswz,dq):list = []url = 'https://xkcx2024/xxdetail.jsp?yxdm={}&yxmc={}&sxkm=08&kskms=&qttj=&cxtj=&xkml='.format(yxdm, ssmc)response = requests.post(url, headers=headers)content = response.textpage = BeautifulSoup(content, 'html.parser')   for trs in page.findAll('tr'):for tds in trs.findAll('td'):list.append(tds.text)
​chunks = 7chunks_list = [list[i:i + chunks] for i in range(0, len(list), chunks)]lists_with_new_element = [sublist + [yxdm, ssmc, zswz, '历史',dq] for sublist in chunks_list]print(lists_with_new_element)result.extend(lists_with_new_element)print(yxdm+':'+ssmc+':已下载...'
​
​
if __name__ == '__main__':result=[]title = ['序号', '层次', '专业(类)名称', '首选科目', '再选科目及选考要求', '所含专业和代码', '招考方向', '学校代码', '学校名称', '学校网址', '首选科目','地区']response = requests.post('https://xkcx2024/GetYxxxServlet', headers=headers,data=json_data)data = response.json()schools=data['yxs']for  school in schools:random_time = random.uniform(1, 2)time.sleep(random_time)dm=school['yxdm']mc=school['yxmc']wz=school['zswz']dq=school['ssmc']get_xk(dm, mc, wz,dq)        df = pd.DataFrame(result, columns=title)df.to_excel('历史类选科.xlsx', index=False)print('done')

希望得到大家的关注和点赞,我们下期见。

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

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

相关文章

Python 商务数据分析—— NumPy 学习笔记Ⅱ

一、 数组元素值的替换 我们可以使用索引或 where () 函数来替换 NumPy 数组中的元素值。 1.1 方式一:索引 import numpy as npnp.random.seed(42)a3 np.random.randint(0, 10, size(3, 4))print("原数组:\n", a3)a3\[1] 0 # 将a3数组第一行数据全…

遥感图像语义分割1-安装mmsegmentation

参考: mmsegmentation: 安装并使用自定义数据集进行训练_mmsegmentation安装-CSDN博客 最新Windows配置安装mmcv与mmsegmentation,以及mmsegmentation的验证_mmcv安装-CSDN博客 GitCode - 全球开发者的开源社区,开源代码托管平台 参考: …

【菜狗的记录】模糊聚类最大树、图神经网络、大模型量化——20250627

每日学习过程中记录的笔记,从各个网站整理下来,用于当日复盘。 如果其中的知识点能帮到你,也很荣幸呀。 -------------------------------------------------------20250622------------------------------------------------------------- …

《短剧平台开发指南:技术方案、核心功能与行业趋势》

一、短剧行业现状与系统开发价值 近年来,短剧市场呈现爆发式增长,成为数字内容领域的新风口。数据显示,2023年国内短剧市场规模已突破300亿元,用户规模达到4.5亿。这种以"短、平、快"为特点的内容形式,凭借…

[FPGA]嵌入式系统FPGA设计资源

嵌入式系统FPGA设计资源 一、供应商 https://www.altera.com- Altera FPGA 供应商网站 https://www.altera.com/events/northamerica/intel-soc-fpga-developer-forum/overview.html- SoC 开发人员论坛 https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/li…

ClickHouse 可观测性最佳实践

ClickHouse 介绍 ClickHouse 是一款高性能、列式存储的开源分析型数据库,专为在线分析处理(OLAP)场景设计。它能够处理海量数据,支持实时查询和复杂的数据分析,具备极高的读写性能和数据压缩能力。ClickHouse 提供了强…

Android Framework设置时间为24小时制

文章目录 定位源码实现附录12 小时制与 24 小时制的详细解析一、基本定义与核心区别二、转换方法与示例三、应用场景与文化差异四、延伸知识:特殊计时制与历史背景 目的是把设置中使用默认语言区域关掉,并把使用24小时制打开 如下图为原始的:…

基于STM32设计的扫地机器人

一、前言 1.1 项目介绍 【1】项目开发背景 随着社会节奏的加快和人们生活方式的改变,智能家居产品逐渐走入千家万户。作为智能清洁系统的重要组成部分,扫地机器人凭借其自动化、高效性和便捷性,成为现代家庭中不可或缺的智能设备之一。传统…

什么是接口测试?

2025最新Jmeter接口测试从入门到精通(全套项目实战教程) 接口测试概念 接口测试是项目测试的一部分,它测试的主要对象是接口,是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与所测系统之间以及内部各系统之间的交…

JDY-23蓝牙模块与电脑的连接方式

JDY-23蓝牙模块支持多种连接方式,包括SPP(串口通信)模式和BLE(低功耗蓝牙)模式。以下是与电脑连接的具体方法: 1. 通过SPP模式连接 JDY-23模块支持SPP协议,可以通过串口与电脑通信。以下是连接…

【网络】Linux 内核优化实战 - net.core.rmem_max

目录 参数作用与原理默认值与查看方法调整场景与方法适用场景调整方法 与其他参数的协同性能影响与注意事项典型案例总结 net.core.rmem_max 是 Linux 内核中控制 套接字接收缓冲区(Receive Buffer)最大允许值 的参数。它与 net.core.rmem_default&#…

设计模式 | 工厂模式

工厂模式(Factory Pattern) 是创建型设计模式的核心成员,它通过将对象创建的逻辑封装起来,实现了创建与使用的解耦。本文将深入探讨工厂模式的核心思想、实现技巧以及在C中的高效实现方式。 为什么需要工厂模式? 在软…

数字孪生技术驱动UI前端变革:从静态展示到动态交互的飞跃

hello宝子们...我们是艾斯视觉擅长ui设计、前端开发、数字孪生、大数据、三维建模、三维动画10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 在数字化转型的深水区,数字孪生技术正以破竹之势重构 UI 前端的技术逻辑与设计理念…

Django实战:自定义中间件实现全链路操作日志记录

文章目录 一、中间件介绍激活中间件生命周期 二、自定义中间件中间件钩子函数基于类的中间件 三、实战案例操作日志功能参考资料 一、中间件 介绍 在 Django 中,中间件(Middleware)是一组轻量级、底层的插件系统,用于全局地改变…

Java编程之迭代器模式(Iterator Pattern)

引言: 走进图书馆,你站在一排书架前,想要浏览书籍。你会一格格地从左到右翻阅书籍,而不是去研究书架是什么。 一本书一本书地翻,才知道书架上藏了什么书,研究书架的构造是不知道书籍的内容的。 这种“逐本…

ARM64 linux系统的一般执行过程

1、正在运行的用户进程X 2、发生异常(包括系统调用等),CPU完成的工作:把当前程序指针寄存器PC放入ELR_EL1寄存器,把PSTATE放入SPSR_EL1寄存器,把异常产生的原因放在ESR_EL1寄存器,将异常向量表…

Vue3+ element 实现导入导出

一、导入功能相关代码分析 相关变量定义 importVisible:这是一个ref类型的响应式变量,用于控制导入对话框的显示与隐藏,初始值为false。当用户点击 “导入” 按钮时,会尝试将其值设为true来显示导入对话框,若出现异常则…

Git安装(纯小白版)

一、Git安装 1. 简介 Git是一款免费开源的分布式版本控制系统,常用于软件开发。它能记录文件在不同时间的改动,让用户在需要时查看、恢复旧版本。支持多人协作开发,多人可同时修改项目文件,Git会处理好冲突。开发者能在本地创建…

cocos2 本地根据文本内容生成二维码

cocos2 本地根据文本内容生成二维码 之前做了一个功能,就是cocos2小游戏,结算页面需要有一个二维码,二维码内容是一个网址,这个网址需要根据用户游玩分数确定访问哪个网址,但是这个小游戏是单机小游戏,不连…

87.xilinx FPGA读取器件id方法

dout数据高位先出msb module chip_id_reader(input clk,input reset,output [56:0] dna_value,output dna_valid );reg [6:0] bit_count;reg [56:0] dna_shift_reg;reg dna_read;reg dna_shift;wire dna_out;// 实例化DNA_PORT原语DNA_PORT #(.SIM_DNA_VALUE(57h123456789ABCD…