233倔强不秃 发表于 2020-5-22 02:02:54

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]
查看完整版本: selenium实现每日自动签到