用Python中的selenium实现某网站的每日自动签到

因为某网站白嫖资源需要签到获取积分,并且自己容易搞忘,所以在网上搜寻python实现自动签到的资料,完成之后写一篇文章来记录一下;

一. 下载chromedriver.exe

首先我们需要一个chromedriver.exe 我们可以在淘宝镜像里面找到与自己的谷歌浏览器版本一致的插件.

https://npm.taobao.org/mirrors/chromedriver/

或者用以下国外网站(上面版本不行就下面这个) https://sites.google.com/chromium.org/driver

二. 安装python依赖的包

pip install selenium

三. 开始写代码

import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By


def morning_clockin(var=None):
    # 找到插件的路径,使用它驱动操作
    browser = webdriver.Chrome('C:/Users/19081/Desktop/AutomaticClockIn/chromedriver_win32/chromedriver.exe')

    # 选择需要打卡的网址,填入你的签到网页
    browser.get('https://www.cgalpha.com/')
    # 有时候会弹出一个界面   需要点击确定
    # 从 selenium 4.3.0 开始,find _ element_by_* 方法已被弃用并删除。
    try:
        browser.find_element(By.CLASS_NAME, 'popup-btn').click()
    except Exception as e:
        print(e)
    time.sleep(3)
	# 通过class点击登录按钮显示登录页面
    try:
        browser.find_element(By.CLASS_NAME, 'fa-plug').click()
    except Exception as e:
        print(e)
    time.sleep(3)

    # 使用selenium点击无反应  使用用js代替
    js = 'return document.getElementsByClassName("fa-user")[0].click()'
    print(browser.execute_script(js))
    # browser.find_element(By.CLASS_NAME, 'login-btn').click()
    # my_error_element = browser.find_element(By.CLASS_NAME, 'fa-user')
    # ActionChains(browser).move_to_element(my_error_element).click()
    time.sleep(3)
	
    # 输入账号密码
    browser.find_element(By.NAME, 'username').send_keys("your username")
    browser.find_element(By.NAME, 'password').send_keys("your password")
    time.sleep(3)
	
    # 点击登录
    browser.find_element(By.CLASS_NAME, 'go-login').click()
    time.sleep(10)
	
    # 点击个人主页
    js = 'return document.getElementsByClassName("menu-avatar-img")[0].click()'
    print(browser.execute_script(js))
    time.sleep(3)
	
    # 点击签到
    browser.find_element(By.CLASS_NAME, 'go-user-qiandao').click()
    print('ok')
    time.sleep(3)
	
	
    browser.close()


if __name__ == '__main__':
    morning_clockin()

四. 加入到电脑的计划中

参考资料: https://blog.csdn.net/l8947943/article/details/119898781

总结

自己遇到的坑: 因为自己py安装了不同版本在不同位置, 所以最后计划运行命令错了, 我是用的pycharm编译器, 可以点开External Libraries看自己python的路径; 还有就是如果selenium模拟点击没有反应, 就应该用js代码来点击.


Python
  • 作者: Mahiru (联系作者)
  • 发表时间: 2023/05/28 23:56
  • 更新时间: 2023/09/06 23:13
  • 留言 顶部