自动登陆
自动登陆加签到,然后每小时登陆一次的python
天天用这个,虽然很简陋,但是很实在。
sleep() 并不太好用,一旦休眠就中断运行了。
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from time import sleep
from datetime import datetime
from datetime import timedelta
a = 1
while True:
op = webdriver.FirefoxOptions()
op.add_argument("--headless") #等效于 ———— op.set_headless()
op.add_argument("--disable-gpu") #禁用GPU加速
driver = webdriver.Firefox(firefox_options = op)
trg = ('id',"td_userinfomore")
try:
#清晨起来开网页,心情美美哒
driver.get('https://bbs.youraddress.com/index.php')
#driver.get_screenshot_as_file("C:\\test.png")#给隐藏网页截图——为了增加信心的。
ele = WebDriverWait(driver,20,0.2).until(ec.title_contains(u'某字'))
#自动登陆很顺畅,心情美美哒
tk = driver.find_element_by_id(u"nav_pwuser")
tk.send_keys(u'myname')
tk = driver.find_element_by_id(u'showpwd')
tk.send_keys(u'dingding123456')
tk = driver.find_element_by_name(u'head_login')
tk.click()
#自动点点来签到,给个心情叫高兴
ele = WebDriverWait(driver,20,0.2).until(ec.presence_of_element_located(trg))
tk = driver.find_element_by_id('nav_key_up_226')
tk.click()
ele = WebDriverWait(driver,20,0.2).until(ec.title_contains(u'签到'))
print('开始签到')
tk = driver.find_element_by_id('nav_key_up_226')
tk.click
print('签到页面')
driver.get_screenshot_as_file("G:\\testA.png")
#嗯,这个地方就是高兴了。我们点它。
tk = driver.find_element_by_xpath('//input[@type="radio" and @name="qdxq" and @value="1"]')
tk.click()
print('点心情')
#签到的最终之战
tk = driver.find_element_by_xpath('//input[@type="submit" and @class="btn" and @value="开始签到"]')
tk.click()
print('签到完成')
print(driver.page_source)
driver.get_screenshot_as_file("G:\\testC.png")
#妈蛋,居然遇到硬盘坏掉这么狗血的事情,原来做的没有了,这是全新的。日志文件还要不要做呢?全忘了,还得重新百度。泪~~
except:
print('网页未成功打开')
driver.get_screenshot_as_file("G:\\testB.png")
driver.quit()#下一步学习scrapy和pyspider
print(a)
a += 1
tnow = datetime.now()
print('本次登陆时间 : ',tnow)
tfuture = tnow + timedelta(hours=1)
print('下次登陆时间 : ',tfuture)
sleep(3600)