前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python模拟登陆云南民族大学完成课表爬取

Python模拟登陆云南民族大学完成课表爬取

作者头像
德宏大魔王
发布2023-08-08 13:53:20
2050
发布2023-08-08 13:53:20
举报
文章被收录于专栏:cloud stdio

预览图:

在这里插入图片描述
在这里插入图片描述

使用到的库

代码语言:javascript
复制
from selenium import webdriver
import time

F12获取HTML元素后完成登录

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
# #声明浏览器对象
browser1 = webdriver.Chrome()
# #访问云南民族大学登录页面
browser1.get("http://202.203.158.158/sso/login?service=http%3A%2F%2F202.203.158.158%2Fj_spring_cas_security_check")
time.sleep(3)
# 3秒后完成对input的输入
username_input =browser1.find_element_by_name("username")
username_input .send_keys('学号')
password_input =browser1.find_element_by_name("password")
password_input .send_keys('密码')

登陆后对各个模块进行分析定位

在这里插入图片描述
在这里插入图片描述

课程表在教务系统里面,所以模拟点击进入教务系统

代码语言:javascript
复制
time.sleep(1)
login_btn =browser1.find_element_by_id("login")

# 点击登录
login_btn.click()
# 登陆后进入教务系统新
time.sleep(7)
# 7秒后打开教务系统
jiaowuxitong =browser1.find_element_by_xpath("/html/body/div[4]/div[2]/div[2]/ul/li[4]").click()

会打开新窗口所以需要用到:

在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
# 获取打开的多个窗口句柄
windows = browser1.window_handles
# 切换到当前最新打开的窗口
browser1.switch_to.window(windows[-1])

在新窗口继续点击课程表

代码语言:javascript
复制
kecheng=browser1.find_element_by_xpath('//*[@id="commonServices"]/div/div[2]/div[1]/div[1]/div').click();

完整代码:

代码语言:javascript
复制
#coding=gbk
from selenium import webdriver
import time
# #声明浏览器对象
browser1 = webdriver.Chrome()
# #访问云南民族大学登录页面
browser1.get("http://202.203.158.158/sso/login?service=http%3A%2F%2F202.203.158.158%2Fj_spring_cas_security_check")
time.sleep(3)
# 3秒后完成对input的输入
username_input =browser1.find_element_by_name("username")
username_input .send_keys('账户')
password_input =browser1.find_element_by_name("password")
password_input .send_keys('密码')
# 模拟点击登录按钮!
# 用id定位
time.sleep(1)
login_btn =browser1.find_element_by_id("login")

# 点击登录
login_btn.click()
# 登陆后进入教务系统新
time.sleep(7)
# 7秒后打开教务系统
jiaowuxitong =browser1.find_element_by_xpath("/html/body/div[4]/div[2]/div[2]/ul/li[4]").click()

time.sleep(2)
# 获取打开的多个窗口句柄
windows = browser1.window_handles
# 切换到当前最新打开的窗口
browser1.switch_to.window(windows[-1])

kecheng=browser1.find_element_by_xpath('//*[@id="commonServices"]/div/div[2]/div[1]/div[1]/div').click();


# 获取结束

该系列我的文章: 解决selenium可视化爬虫报错以及安装chromedriver系列踩坑问题

解决Pycharm安装pip模块报错问题

【Python】芝麻HTTP代理系列保姆级全套攻略(对接教程+自动领取每日IP+IP最优算法)

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档