Python 爬取大学教室空闲时间:基于 Requests 库的实战
使用 Python Requests 库爬取大学教室空闲时间
本代码演示如何使用 Python Requests 库爬取大学教室空闲时间并解析 JSON 数据,最终筛选出空闲教室及其对应时间段。
import requests
cookies = {
'JSESSIONID': '979EB8A4FB45297AA14D52989E787062',
}
coursetime = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']
response = requests.get('http://jwcwx.nepu.edu.cn/free-class-room/classroomUsedData?jwCode=&jzwdm=1004993&rq=2023-04-08', cookies=cookies)
res_json = response.json()
# 创建字典存储空闲教室及其对应时间
available_classrooms = {}
for i in res_json['data']:
# 检查教室是否空闲
if i['shztdm'] == '2':
# 获取教室代码
classroom_code = i['jxcdmc']
# 获取时间段
time_slot = coursetime[int(i['jcdm'][0:2]) - 1] + '-' + coursetime[int(i['jcdm'][3:5]) - 1]
# 将教室和时间段添加到字典中
if classroom_code in available_classrooms:
available_classrooms[classroom_code].append(time_slot)
else:
available_classrooms[classroom_code] = [time_slot]
# 打印空闲教室及其对应时间段
for classroom, time_slots in available_classrooms.items():
print(classroom + ': ' + ', '.join(time_slots))
代码解析:
- 导入 Requests 库:
import requests - 设置 Cookies: 定义一个字典
cookies,包含需要访问网站的 Cookie 信息。 - 定义时间段: 创建一个列表
coursetime,存储一天的各个时间段。 - 发送 GET 请求: 使用
requests.get()发送 GET 请求,获取目标网站的数据。 - 解析 JSON 数据: 使用
response.json()将响应数据解析为 JSON 格式。 - 遍历数据: 遍历
res_json['data']中的每个教室数据。 - 筛选空闲教室: 检查教室的
shztdm属性是否为 '2',如果是,则表示教室为空闲状态。 - 获取教室代码和时间段: 从数据中提取教室代码
jxcdmc和时间段jcdm,并根据coursetime列表将时间段转换为可读格式。 - 存储空闲教室和时间: 将空闲教室代码和时间段存入字典
available_classrooms中。 - 打印结果: 遍历字典
available_classrooms,打印每个空闲教室及其对应的时间段。
注意:
- 代码中的
JSESSIONID、jzwdm和rq需根据目标网站进行调整。 - 确保目标网站允许爬取数据,并遵守相关法律法规。
应用:
本代码可以作为基础框架,用于爬取不同大学的教室空闲时间。只需根据目标网站的 URL、数据结构和相关参数进行调整即可。
原文地址: https://www.cveoy.top/t/topic/nemq 著作权归作者所有。请勿转载和采集!