小白学了python后,天天逛BBS,看着BBS签到,就依葫芦画起瓢来了,试着写了个自动签到的脚本,大神勿喷。首先感谢@大丁锅博主,参照大丁锅的Python实现自动签到脚本画了一个。
首先还是下载它selenium,在命令行安装它。
pip install selenium
主要是利用谷歌浏览器,这 一步不能省。在运行脚本时需要下载一个chromedriver.exe,下载地址为(注意根据自己的谷歌浏览器的版本来下载):http://npm.taobao.org/mirrors/chromedriver/
网页元素定位请参照@猫与测试博主,按下面这篇文章方法进行定位。感谢 @猫与测试博主。
Python + Selenium(七)网页元素定位(六)Xpath
在测试中注意:
1、网页元素定位很重要,定位错了,就跑不起了。
2、时间延时要把握好。
3、chromedriver.exe版本要下载对。
4、谷哥浏览器禁止升级。
5、仅供学习交流测试。
import time
from selenium import webdriver
# autopep8 --in-place --aggressive --aggressive autopep8.py
# 模拟浏览器打开网站
browser = webdriver.Chrome()
browser.get('https://***.com')//登录地址
# 将窗口最大化
browser.maximize_window()
# 根据路径找到按钮,并模拟进行点击
browser.find_element_by_xpath('/html/body/div[6]/div[2]/div/div/form/ul/li[2]/a').click()
# 延时2秒,以便网页加载所有元素,避免之后找不到对应的元素
time.sleep(1)
browser.find_element_by_xpath('/html/body/div[6]/div[2]/div/div/form/div/div[5]/a[1]').click()
# 延时2秒,以便网页加载所有元素,避免之后找不到对应的元素
time.sleep(1)
# 格式是PEP8自动转的、
# 在输入用户名
browser.find_element_by_xpath('/html/body/div[6]/div[2]/div/div/form/div/div[1]/input[2]').send_keys("********")
# 延时1秒,以便网页加载所有元素,避免之后找不到对应的元素
time.sleep(1)
# 在输入密码
browser.find_element_by_xpath('/html/body/div[6]/div[2]/div/div/form/div/div[2]/input').send_keys("*******")
time.sleep(1)
# 在输入用户名和密码之后,点击登陆按钮
browser.find_element_by_xpath('/html/body/div[6]/div[2]/div/div/form/div/button').click()
time.sleep(5)
# 今日领取
browser.find_element_by_xpath('/html/body/div[3]/div/div/div/div[2]/div[2]/div/div').click()
time.sleep(1)
# 今日签到
browser.find_element_by_xpath('/html/body/div[6]/div/div[2]/div[2]/a/span[1]').click()
time.sleep(1)
print("签到成功")
# 脚本运行成功,退出浏览器
browser.quit()
脚本运行成功后,没有退出,下次再优化吧。