Ubuntu20.04实现Python基于Selenium实现上海大学校园网自动登录

Ubuntu20.04实现Python基于Selenium实现上海大学校园网自动登录

以anaconda环境为例,创建一个Selenium的虚拟环境:

一、安装selenium

1.	conda create -n selenium python==3.8
2.	conda activate selenium
3.  pip install selenium

二、安装第三方WebDriver驱动

我使用的是Chrome(这里就以ChromeDriver为例):

1.下载谷歌浏览器:

使用wget下载最新的Google Chrome .deb软件包:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
2.安装谷歌浏览器:
sudo apt install ./google-chrome-stable_current_amd64.deb
3.启动
4.查看版本:输入
chrome://version

在这里插入图片描述
版本为:99.0.4844.84

5.下载Chrome对应版本驱动

在这里插入图片描述
没有99.0.4844.84的话,可以忽略最后两个数字,选择99.0.4844.xx即可。
在这里插入图片描述

6.解压至文件夹,

这里我解压到/home/labtory702/Network_connect中
在这里插入图片描述

7.在环境变量中添加驱动所在目录:

在终端中输入:

sudo gedit ~/.bashrc

在这里插入图片描述
打开.bashrc文件后,在最后一行输入:

export CHROMERDRIVERPATH=$CHROMERDRIVERPATH:/home/labtory702/Network_connect

在这里插入图片描述
添加好之后保存关闭。
在终端输入:

source ~/.bashrc

之后重新再进一下刚刚建立好的虚拟环境中。
查看路径:

echo ${CHROMEDRIVERPATH}

在这里插入图片描述

8.验证安装:

输入chromedriver
出现下列错误:
在这里插入图片描述解决方法,输入:

sudo apt install chromium-chromedriver
最后输入再输入:chromedriver,显示添加成功:

在这里插入图片描述
main.py代码如下:(代码来自于一位大佬的CSDN

from selenium import webdriver
from selenium.webdriver import Chrome
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
import socket
import time

username = 'XXXXXXX'
password = 'XXXXXXX'

def is_net_ok():
	driver_test = Chrome()
	driver_test.implicitly_wait(10)
	try:
		driver_test.get("http://10.10.9.9:8080")
		online_text = driver_test.find_element(By.ID, "userMessage").text
		driver_test.quit()
	except Exception as e:
		print(e)
		return False
	if online_text == "您已成功连接校园网!":
		return True
	else:
		return False

def main():
    while True:
        if is_net_ok():
            print("online!  fine!")
            time.sleep(600)
        else:
            print("offline!  sad!")
            driver = Chrome()
            try:
                driver.get("http://10.10.9.9:8080")
                driver.find_element(By.ID, "username").send_keys(username + Keys.ENTER + password)
                driver.find_element(By.ID, "loginLink_div").click()
                driver.quit()
                time.sleep(5)
            except Exception as e:
                print(e)
                driver.quit()     
                
if __name__ == "__main__":
    main()

每10分钟检测一次是否断网,若断网则重新连接
在这里插入图片描述
参考资料
[1] 【Python】基于Selenium实现上海大学校园网自动登录

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
您好!如果您想使用Selenium登录大学慕课网站,您可以按照以下步骤进行操作: 1. 首先,确保您已经安装了Selenium库。您可以使用pip命令来进行安装:`pip install selenium`。 2. 接下来,您需要下载并配置相应的浏览器驱动。大学慕课网站常用的浏览器是Chrome,您可以根据您使用的浏览器版本来下载对应的 Chrome 驱动。将驱动程序放置在合适的位置,并将该位置添加到系统环境变量中。 3. 在代码中导入Selenium库,并启动浏览器。以使用Chrome为例,代码示例如下: ```python from selenium import webdriver # 启动Chrome浏览器 driver = webdriver.Chrome() ``` 4. 使用`driver.get()`方法打开大学慕课网站的登录页面。 ```python driver.get("https://www.xuetangx.com/") ``` 5. 查找并输入用户名和密码。您可以通过查看网页源代码或使用浏览器开发者工具来确定用户名和密码输入框的HTML元素id或name属性,并使用`driver.find_element_by_xxx()`方法找到并操作这些元素。 ```python # 输入用户名 username_input = driver.find_element_by_id("username") username_input.send_keys("your_username") # 输入密码 password_input = driver.find_element_by_id("password") password_input.send_keys("your_password") ``` 6. 点击登录按钮。 ```python login_button = driver.find_element_by_id("login-button") login_button.click() ``` 7. 等待页面加载完成,可以使用`time.sleep()`方法进行简单的等待,也可以使用隐式或显式等待方法来等待特定的元素加载完成。 8. 登录成功后,您可以进行其他操作,如爬取课程信息、观看视频等。 请注意,使用Selenium自动登录网站时要遵守网站的使用条款和隐私政策,确保不进行任何违法或损害他人利益的行为。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值