使用 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))

代码解析:

  1. 导入 Requests 库: import requests
  2. 设置 Cookies: 定义一个字典 cookies,包含需要访问网站的 Cookie 信息。
  3. 定义时间段: 创建一个列表 coursetime,存储一天的各个时间段。
  4. 发送 GET 请求: 使用 requests.get() 发送 GET 请求,获取目标网站的数据。
  5. 解析 JSON 数据: 使用 response.json() 将响应数据解析为 JSON 格式。
  6. 遍历数据: 遍历 res_json['data'] 中的每个教室数据。
  7. 筛选空闲教室: 检查教室的 shztdm 属性是否为 '2',如果是,则表示教室为空闲状态。
  8. 获取教室代码和时间段: 从数据中提取教室代码 jxcdmc 和时间段 jcdm,并根据 coursetime 列表将时间段转换为可读格式。
  9. 存储空闲教室和时间: 将空闲教室代码和时间段存入字典 available_classrooms 中。
  10. 打印结果: 遍历字典 available_classrooms,打印每个空闲教室及其对应的时间段。

注意:

  • 代码中的 JSESSIONIDjzwdmrq 需根据目标网站进行调整。
  • 确保目标网站允许爬取数据,并遵守相关法律法规。

应用:

本代码可以作为基础框架,用于爬取不同大学的教室空闲时间。只需根据目标网站的 URL、数据结构和相关参数进行调整即可。

Python 爬取大学教室空闲时间:基于 Requests 库的实战

原文地址: https://www.cveoy.top/t/topic/nemq 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录