用selenium完成自动签到的功能

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样,特别像按键精灵。

借助这个工具可以实现很多有趣的功能,比如最近做了一个kaola网站的自动签到获得考拉豆的功能。

代码是python写的,先登录,然后点击签到按钮。借助chrome的debug工具,可以很方便的找到html标签,然后用类似find_element_by_id/find_element_by_css_selector的函数可以非常容易的操作这些标签。

同时还需要一个定时的功能,每天凌晨签到,这个用crontab非常好实现。

0 0 * * * python /path/to/your/script

这里有个坑,如果按上面写你会发现不work,原因是selenium是完全通过直接运行浏览器进程运行的,所以需要一个X window的环境,所以应该这样…

0 0 * * * DISPLAY=:0 python /path/to/your/script

整个python代码(selenium库需要先用easy_install安装),代码超级短,简直幸福感+++

# kaola auto checkin
from selenium import webdriver
from config import kaola # 包含username和password的list

for username, password in kaola:
    driver = webdriver.Firefox()
    # 先登录
    driver.get("http://www.kaola.com/login.html")

    username_input = driver.find_element_by_id("username")
    password_input = driver.find_element_by_id("password")

    username_input.send_keys(username)
    password_input.send_keys(password) 
    driver.find_element_by_id("loginin").click()
    # 点击签到按钮
    driver.find_element_by_css_selector(".checkin").click()

    driver.quit()

总结:

这种直接模拟的lib实现功能比那种发get/post请求的简单多了,特别是在处理登陆 + 其他复杂操作,可以快速完成很多有趣的事情,比如8点10分发条微博…
当然你也会发现…这的确是个网页自动化测试的利器。

Have Fun!

Tags : ,

One thought on “用selenium完成自动签到的功能”

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Click the right image To submit your comment: