selenium实现每日自动签到
一 作品工具:selenium模块、time模块、 sys模块、 datetime模块、 pyvirtualdisplay模块(如果是在Windows环境运行,忽略这个模块)、阿里云服务器
源代码:
"""鱼C论坛自动签到"""
from selenium import webdriver
import time
import sys
import datetime
'''
# 在Windows环境运行请忽略这几行代码
from pyvirtualdisplay import Display
display = Display(visible=0, size=(800, 800))
display.start()
'''
browser = webdriver.Chrome()
date = datetime.date.today()
# 账号密码
data = {'username' : 你的用户名,
'password' : 你的密码}
# 签到网址
url = 'https://fishc.com.cn/plugin.php?id=k_misign:sign'
try:
browser.get(url)
# 输入用户名
user_name = browser.find_element_by_id("ls_username")
print(user_name)
user_name.send_keys(data['username'])
time.sleep(1)
# 输入密码
password = browser.find_element_by_id("ls_password")
password.send_keys(data['password'])
time.sleep(1)
# 点击登录
log_in = browser.find_element_by_xpath('//button[@class="pn vm"]')
log_in.click()
time.sleep(2)
# 跳转到签到页
skip = browser.find_element_by_xpath('//a[@href="plugin.php?id=k_misign:sign"and @hidefocus]')
skip.click()
# 点击签到
sign_in = browser.find_element_by_id('JD_sign')
sign_in.click()
except:
print('签到失败!', date.isoformat())
else:
print('签到成功!', date.isoformat())
finally:
# 关闭所有窗口
browser.quit()
sys.exit()
二 心得
将近两个月没有发帖了,期间用了一些时间去学习爬虫,我个人的观点是:如果不把爬虫当吃饭的工具,其实不用学那么深。因为教程跟不上网站反爬技术的更新,如果时间都花费在踩点上面,对于正在学习而目的不是只会爬虫的人来说,有点
浪费时间了。我在这两个月的期间也勉强算是实现了自己两个月前立下的目标,对ubuntu和web开发都有一点了解。所以二月份白嫖的阿里云服务器现在就派上用场了。我将写好的脚本放进服务器里面, 用crontab设置了定时执行。因为我设置服务器
是ubuntu系统,所以没有图形界面。再加上是第一次玩服务器,所以在chrome、chromedriver下载和配置上花了点时间。具体的linux操作就不细讲了,值得注意的是:如果想在linux环境下运行该脚本,不要用root用户去执行(服务器上一般进去就是
root),所以自己再新建一个用户设置一下权限,就可以每天自动签到了。
参考链接:ubuntu下设置定时脚本
ubuntu下配置chrome和chromedriver
页:
[1]