一、
先上网址
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博客