四六级成绩爬取代码原创

2024-02-25 19:28

本文主要是介绍四六级成绩爬取代码原创,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在六级成绩刚发布时,只需要通过学生姓名和身份证号便可以查询到成绩

据此,我们可以利用selenium框架对学生的成绩进行爬取

首先我们要建立一个excel表格,里面放三列(多几列也无所谓),第一列列名取为学生姓名,第二列取为公民身份号码,这两列需要放入已有数据,第三列取为6级成绩,列中不需要放入数据,供后期存入用。

环境搭建: pip install selenium即可

from selenium import webdriver
from selenium.common import TimeoutException
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.by import By
import pandas as pd
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
data=pd.read_excel('liuji.xlsx')
data_xm=data['学生姓名'].tolist()
data_no=data['公民身份号码'].tolist()# 声明 Chrome 浏览器并设置选项
options = webdriver.ChromeOptions()
options.add_experimental_option('detach', True)# 创建 Chrome WebDriver,并将选项传递给它
browser = webdriver.Chrome(options=options)
url = 'https://cjcx.neea.edu.cn/html1/folder/21083/9970-1.htm'
browser.get(url)select_element = browser.find_element(by='xpath',value="//select[@id='km']")# 使用 Select 类来操作 select 元素
select = Select(select_element)# 选择第二个选项,根据 value 属性选择
select.select_by_value('2')
time.sleep(2)
score_list=[]
for id in range(len(data_xm)):xm = data_xm[id]no = data_no[id]input1=browser.find_element(by='id', value='xm')input1.clear()input1.send_keys(xm)input2=browser.find_element(by='id', value='no')input2.clear()input2.send_keys(no)#browser.save_screenshot(f'image/{xm}.png')button=browser.find_element(by='xpath',value="//input[@id='submitButton']")button.click()# 等待页面跳转try:WebDriverWait(browser, 2).until(EC.url_changes(browser.current_url))# 执行成功跳转后的操作print(f"成功跳转,当前 URL: {browser.current_url}")except TimeoutException:# 超时处理,继续下一轮循环print("页面跳转超时,继续下一轮循环")continuescore_xpath=browser.find_element(by="xpath",value="//*[@id='achievement-tbody']/tr/td[3]")score=score_xpath.textscore_list.append(score)browser.back()data['6级分数'] = score_list  data.to_excel('liuji.xlsx', index=False)

这样就可以非常高效地爬取到同学们地成绩了

这篇关于四六级成绩爬取代码原创的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/746456

相关文章

MySQL实现多源复制的示例代码

《MySQL实现多源复制的示例代码》MySQL的多源复制允许一个从服务器从多个主服务器复制数据,这在需要将多个数据源汇聚到一个数据库实例时非常有用,下面就来详细的介绍一下,感兴趣的可以了解一下... 目录一、多源复制原理二、多源复制配置步骤2.1 主服务器配置Master1配置Master2配置2.2 从服

Go语言使用net/http构建一个RESTful API的示例代码

《Go语言使用net/http构建一个RESTfulAPI的示例代码》Go的标准库net/http提供了构建Web服务所需的强大功能,虽然众多第三方框架(如Gin、Echo)已经封装了很多功能,但... 目录引言一、什么是 RESTful API?二、实战目标:用户信息管理 API三、代码实现1. 用户数据

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

C++归并排序代码实现示例代码

《C++归并排序代码实现示例代码》归并排序将待排序数组分成两个子数组,分别对这两个子数组进行排序,然后将排序好的子数组合并,得到排序后的数组,:本文主要介绍C++归并排序代码实现的相关资料,需要的... 目录1 算法核心思想2 代码实现3 算法时间复杂度1 算法核心思想归并排序是一种高效的排序方式,需要用

springboot项目中集成shiro+jwt完整实例代码

《springboot项目中集成shiro+jwt完整实例代码》本文详细介绍如何在项目中集成Shiro和JWT,实现用户登录校验、token携带及接口权限管理,涉及自定义Realm、ModularRe... 目录简介目的需要的jar集成过程1.配置shiro2.创建自定义Realm2.1 LoginReal

SpringBoot集成Shiro+JWT(Hutool)完整代码示例

《SpringBoot集成Shiro+JWT(Hutool)完整代码示例》ApacheShiro是一个强大且易用的Java安全框架,提供了认证、授权、加密和会话管理功能,在现代应用开发中,Shiro因... 目录一、背景介绍1.1 为什么使用Shiro?1.2 为什么需要双Token?二、技术栈组成三、环境

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

Python跨文件实例化、跨文件调用及导入库示例代码

《Python跨文件实例化、跨文件调用及导入库示例代码》在Python开发过程中,经常会遇到需要在一个工程中调用另一个工程的Python文件的情况,:本文主要介绍Python跨文件实例化、跨文件调... 目录1. 核心对比表格(完整汇总)1.1 自定义模块跨文件调用汇总表1.2 第三方库使用汇总表1.3 导

python使用Akshare与Streamlit实现股票估值分析教程(图文代码)

《python使用Akshare与Streamlit实现股票估值分析教程(图文代码)》入职测试中的一道题,要求:从Akshare下载某一个股票近十年的财务报表包括,资产负债表,利润表,现金流量表,保存... 目录一、前言二、核心知识点梳理1、Akshare数据获取2、Pandas数据处理3、Matplotl

Django开发时如何避免频繁发送短信验证码(python图文代码)

《Django开发时如何避免频繁发送短信验证码(python图文代码)》Django开发时,为防止频繁发送验证码,后端需用Redis限制请求频率,结合管道技术提升效率,通过生产者消费者模式解耦业务逻辑... 目录避免频繁发送 验证码1. www.chinasem.cn避免频繁发送 验证码逻辑分析2. 避免频繁