服务器上使用Python selenium脚本实现自动签到

一、

先上网址


jkl.png

由于不需要验证码,因此可以直接使用selenium实现签到。

二、环境搭建

在阿里云ubuntu20.04服务器上无界面版的chrome浏览器存在驱动问题,因此改为Firefox。有关selenium的具体使用这里就不再赘述了。

1.安装Firefox浏览器:

apt install firefox

安装成功:


Firefox.png

2.安装selenium

pip3 install selenium

3.下载驱动:geckodriver

解压后上传至服务器 /home/qiandao

4.移动驱动

mv geckodriver /usr/local/bin

5.测试一下

新建一个测试文件
vim firefoxtest.py
测试代码

from selenium import webdriver
import time

url = 'https://www.baidu.com'

# 设置无界面模型
option = webdriver.FirefoxOptions()
option.add_argument('--headless')

driver = webdriver.Firefox(firefox_options=option, executable_path='/usr/local/bin/geckodriver')
driver.get(url)

print(driver.title)

运行
python3 .\firefox.py
成功

ok.png

三、 签到脚本

按F12打开开发者工具,选择需要操作的元素,复制xpath路径到代码中


select.png

python代码

# -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
import logging

#打印一下日志
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"
logging.basicConfig(filename='qiandao.log', level=logging.INFO, format=LOG_FORMAT)


myusername = "1as5f@sdf.com"
mypassword = "124"

# 设置无界面模型
option = webdriver.FirefoxOptions()
option.add_argument('-headless')  #无头模式
option.set_preference('permissions.default.image',2) #不加载图片
  
driver = webdriver.Firefox(firefox_options=option, executable_path='/usr/local/bin/geckodriver')
#模拟浏览器打开网站

driver = webdriver.Firefox(firefox_options=option, executable_path='/usr/local/bin/geckodriver')
#模拟浏览器打开网站
driver.get("https://jinkela.cyou/auth/login")
try:
    #通过xpath路径找到 用户名、密码 框,并输入
    driver.find_element(By.XPATH,"//*[@id='email']").send_keys(myusername)
    driver.find_element(By.XPATH,"//*[@id='passwd']").send_keys(mypassword)

    #模拟点击登录按钮
    driver.find_element(By.XPATH,"//*[@id='login']").click()

    time.sleep(7)

    #模拟登陆后点击签到界面
    #(我所模拟的页面不需要这一步,因此不用加这一句)
    #driver.find_element(By.XPATH,"/html/body/div[1]/div/form/div/div[5]/button").click()
    #time.sleep(2)

    #模拟点击签到按钮
    driver.find_element(By.XPATH,"//*[@id='checkin']").click()

    time.sleep(2)
    driver.find_element(By.ID,"result_ok").click()
    #print('当前浏览地址为:.{0}'.format(driver.current_url))
    logging.info("checkin success")
    print("签到成功")

except:
    logging.error("checkin fault")
    print("签到失败")

driver.quit()     #退出驱动

最后设置一下定时任务,就可以每天自动签到了!
corntab -e进入定时程序,
输入0 7 * * * python3 /home/qiandao/firefoxqiandao.py,每天7点运行

五、参考

服务器 配置ubuntu18.04 + selenium + firefox, 无界面读取网页_LG的博客-CSDN博客

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容