python 模拟登录超星强智系统

老师教我们写的

import io
import os

import sys
import time
from selenium import webdriver
from selenium.webdriver import ChromeOptions, ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys  # 键盘按键操作

delay=3
#模拟鼠标点击的次数
#单击
def moveto_item_and_click_it(page,item):
    #拖动到可见的元素去
    page.execute_script("arguments[0].scrollIntoView();",item)
    #建立动作链
    chain=ActionChains(page)
    #执行鼠标悬停到元素上
    chain.move_to_element(item).perform()
    #利用js将为元素设置焦点
    driver.execute_script("arguments[0].focus();",item)
    time.sleep(delay)
    item.click()
    driver.implicitly_wait(5)
#双击
def moveto_item_and_click_it_two(page,item):
    # 拖动到可见的元素去
    page.execute_script("arguments[0].scrollIntoView();", item)
    # 建立动作链
    chain = ActionChains(page)
    # 执行鼠标悬停到元素上
    chain.move_to_element(item).perform()
    # 利用js将为元素设置焦点
    driver.execute_script("arguments.focus()", item)
    time.sleep(delay)
    chain.double_click(item).perform()
    driver.implicitly_wait(5)


input('请确认与你的浏览器版本匹配的chromedriver.exe已经下载并安装到python安装文件夹')
#输入超星登录账号
userName=input('请输入你登录web.jsu.edu.cn的用户名:')
#输入超星登录密码
print('请输入你登录web.jsu.edu.cn的密码:')
pwd=input()
print('username is:',userName,'pwd is:',pwd)
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf8')  # 改变标准输出的默认编码
# 创建chrome参数对象
option = ChromeOptions()
# 把chrome设置成无界面模式,不论windows还是linux都可以,自动匹配
option.add_argument("--headless")  # 指定无头模式
# driver = webdriver.Chrome(options=option)
driver=webdriver.Chrome()
driver.set_window_size(1920, 1080)
# 登录页面
url = r'https://web.jsu.edu.cn/'
# 访问登录页面
driver.get(url)
# 等待一定时间,让js脚本加载完毕
driver.implicitly_wait(3)
# driver.print_page()

# 输入用户名
usernameTextBox = driver.find_element(By.CLASS_NAME, 'el-input__inner')
usernameTextBox.send_keys(userName)
# 输入密码
password = driver.find_element(By.XPATH, "//*[@type='password']")
password.send_keys(pwd)
# 点击“登录”按钮
login_frame = driver.find_element(By.XPATH,"//*[@class='login-frame-left-below-div2']")
login_button=login_frame.find_element(By.XPATH, "//*[@class='el-button el-button--primary' and @type='button']")
print(login_button)
login_button.send_keys(Keys.RETURN)
time.sleep(1)

#登录超星平台后,进入强制系统
# enter1 = driver.find_element(By.LINK_TEXT, "强智教务系统(师生入口)")
# moveto_item_and_click_it(driver, enter1)
# time.sleep(1)
#
# driver.switch_to.window(driver.window_handles[-1]) # 切换到最新打开的窗口
#
# enter2=driver.find_element(By.LINK_TEXT,"培养管理")
# moveto_item_and_click_it(driver,enter2)
# time.sleep(5)



# 网页截图
driver.save_screenshot(os.getcwd() + r'.\01.png')
# #打印网页源代码
# print(driver.page_source.encode('utf-8').decode())
# driver.quit()

注意:在运行此代码前,需要在你的python文件夹下下载并安装与浏览器版本匹配的chromedriver.exe

查看浏览器的版本:打开浏览器->右上方有三个点,点击->设置->关于

若有错处,请各位大神指摘!

你可能感兴趣的:(python,后端,爬虫)