首页 > 其他分享 >记一次爬取bupt课表的经历

记一次爬取bupt课表的经历

时间:2024-10-23 17:46:26浏览次数:1  
标签:status 爬取 code url bupt 课表 print

由于打开北邮课表的步骤实在是太繁琐,竟然要整整5步(而且企业微信还一卡一卡的),于是就想写一份爬虫把课表给弄下来。

我这里选择了教务系统里的那个课表进行爬取,网址是:https://jwgl.bupt.edu.cn/jsxsd/

登录很好办,直接找到下图里的请求表单,把UserAccount,userPassword、encoded给POST上去就行了。
login

刚研究了一下就发现这玩意怎么是js动态加载的啊,本来想用selenium的,但觉得太麻烦了(实际上是忘得一干二净)。于是就决定手动把源文件给找出来。找了好半天,终于找到了这个data。点进去发现这里面加载了课程表的源html。

这下就好办了,分析源码发现课程都在有table-class标签的html中,并且有day?作为时间标识(暂时不想搞了),一个soup.findall直接拿下,以下是源码。

import requests
from bs4 import BeautifulSoup

login_url = "https://jwgl.bupt.edu.cn/jsxsd/xk/LoginToXk"

payload = {
	"userAccount": "",
	"userPassword": "",
    "encoded": ""
}

session = requests.Session()
response = session.post(login_url, data=payload)
if response.status_code == 200:
    print("登录成功")
else:
    print(f"登录失败,状态码: {response.status_code}")

url = "https://jwgl.bupt.edu.cn/jsxsd/framework/xsdPerson.jsp"

response2 = session.get(url=url)
if response2.status_code == 200:
    soup = BeautifulSoup(response2.text, 'html.parser')
    items = soup.find_all(class_="table-class")
    for item in items:
        print(item.text)
else:
    print(f"Failed to retrieve page, status code: {response.status_code}")

标签:status,爬取,code,url,bupt,课表,print
From: https://www.cnblogs.com/mklzc/p/18497865

相关文章

  • 使用网络爬虫爬取豆瓣电影网站的数据
    ......
  • 基于大数据 Python+Vue 电影票房爬取可视化系统(源码+LW+部署讲解+数据库+ppt)
    !!!!!!!!!会持续一直更新下去有问必答一键收藏关注不迷路源码获取:https://pan.baidu.com/s/1aRpOv3f2sdtVYOogQjb8jg?pwd=jf1d提取码:jf1d!!!!!!!!!项目介绍在快速发展的社会中,娱乐领域也在不断进步。为了提高数据分析的效率和观众的观影体验,越来越多的影视公司和电影院选择利用互联网......
  • Scrapy | 通过爬取豆瓣Top250电影信息来学习在中间件中应用随机请求头和代理ip
    中间件的使用1.scrapyl中间件的分类和作用1.1scrapy中间件的分类1.2scrapy中间的作用:预处理request和response对象2.下载中间件的使用方法:3.定义实现随机User-Agent的下载中间件3.1实战:爬取豆瓣Top250电影信息3.2中间件使用实现随机User-Agent4.代理ip的使用4.1思......
  • 2024 BUPT Programming Contest F
    简要题意给定一个\(n\timesn\)矩阵,矩阵中的每一个元素的计算方式如下:随机从\([0,n-1]\)中选出两个整数(可以重复)\(a,b\),矩阵的元素为\(a\timesb\bmodn\)求矩阵中元素\(m\)出现次数的期望。\(0\lem<n\le10^{12}\)题解对于矩阵中的任意一个元素是独......
  • 使用Python爬取某车网参数详情并解析数据
    前言在本文中,我们将介绍如何使用Python来获取某汽车网站的参数详情,并将有用的数据提取出来保存到本地。我们将使用requests库来发送网络请求,同时利用随机User-Agent和代理IP来模拟真实用户的访问行为,以避免被服务器封禁。目标网站1.准备工作首先,我们需要安装一些必要......
  • |动漫爬取|001_djangodjango基于Spark的国漫推荐系统的设计与实现2024_tpd6q1o4
    目录系统展示开发背景代码实现项目案例 获取源码博主介绍:CodeMentor毕业设计领航者、全网关注者30W+群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AWS/Wired等平台优选内容创作者、深耕Web......
  • 爬虫爬取豆瓣top250电影信息
     使用正则解析,获得名字,影片信息,打分,评价人数,影评等数据。存储到csv文件中,少部分数据爬取不到还存在优化空间。importrequestsimportreimportcsv#拿到豆瓣top250网站源码headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36......
  • 【python爬虫案例】利用python爬取豆瓣音乐评分TOP250的排行数据!
    一、爬取案例-豆瓣音乐TOP250之前给大家分享了2个豆瓣的python爬虫案例:【python爬虫案例】利用python爬虫爬取豆瓣电影评分TOP250排行数据!【python爬虫案例】利用python爬虫爬取豆瓣读书评分TOP250的排行数据! 今天再给大家分享一下:豆瓣音乐排行榜TOP250的python爬虫案例!爬......
  • 【python爬虫案例】利用python爬取B站TOP100热门排行榜附源码
    目录一、爬取目标-B站排行榜二、B站排行榜网站分析三、B站排行榜爬虫代码详解四、B站排行榜结果五、python爬虫源代码获取一、爬取目标-B站排行榜大家好,我是老王!今天给大家分享一期python爬虫案例,这次爬取的对象是:B站热门排行榜数据爬取的目标网址是:https://www.bil......
  • 使用Python爬取免费代理并测试其有效性
    前言在本篇文章中,我们将使用Python编写一个脚本来爬取免费的代理IP地址,并对其进行有效性测试。我们将会用到playwright、aiohttp、pandas等库来完成这个任务。最终我们会得到一个包含有效代理IP地址的列表,并将其保存到本地文件中。1.环境准备首先,你需要确保你的Python环......