python+selenium實現(xiàn)QQ群自動簽到
作者: 鄭曉 分類: Python 發(fā)布于: 2016-07-13 19:30 瀏覽:28,064 評論(25)
python+selenium實現(xiàn)的QQ群自動簽到!
QQ群里的群簽到功能經(jīng)常會斷簽,如果能用腳本去自動簽到,就再也不怕忘簽了~下面鄭曉會告訴你如何使用python來實現(xiàn)QQ群的定時自動簽到(邪惡臉)。
以下代碼基于linux(centos),Python2.7,且須要有pyvirtualdisplay和selenium庫支持。
#!-*- coding:utf-8 -*-
from pyvirtualdisplay import Display
from selenium import webdriver
import requests
#要簽到的QQ群號列表
groupid = [123456789,987654321]
headers = {"Content-Type":"application/x-www-form-urlencoded","Host":"qiandao.qun.qq.com","Origin":"http://qiandao.qun.qq.com","Referer": "http://qiandao.qun.qq.com","User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.84 Safari/537.36"}
#創(chuàng)建一個啟動session的請求對象
s = requests.Session()
def login():
try:
#啟動一個虛擬桌面
display = Display(visible=0, size=(1100,700))
display.start()
driver = webdriver.Firefox()
driver.set_window_position(20, 40)
driver.set_window_size(1100,700)
#打開QQ登錄界面 準(zhǔn)備登錄
driver.get('http://qzone.qq.com')
driver.switch_to_frame('login_frame')
driver.find_element_by_id('switcher_plogin').click()
driver.find_element_by_id('u').clear()
#填寫QQ帳號
driver.find_element_by_id('u').send_keys('qq號')
driver.find_element_by_id('p').clear()
#填寫QQ密碼
driver.find_element_by_id('p').send_keys('****zh30.com****')
#模擬點擊登錄按鈕 執(zhí)行登錄 獲取cookie
driver.find_element_by_id('login_button').click()
cookies = driver.get_cookies()
#退出瀏覽器
driver.quit()
display.stop()
return cookies
except:
pass
cookies = login()
for cookie in cookies:
if cookie['name'] == 'skey':
skey = cookie['value']
s.cookies.set(cookie['name'], cookie['value'])
#計算bkn并存入cookie
e = 5381
for i in range(len(skey)):
e = e + (e<<5)+ord(skey[i])bkn = str(2147483647 & e)s.cookies.set("Gtk", bkn)#簽到方法def sign(groupid): for gid in groupid: response = s.post("http://qiandao.qun.qq.com/cgi-bin/sign", data={"gc":gid, "is_sign":0, "bkn":bkn}, headers=headers) responseJson = response.json() if responseJson.has_key('em') and responseJson['em'] == 'no login': break#開始簽到sign(groupid)
好了,這樣就完成了一個自動簽到的腳本,運行它便會自動啟動瀏覽器、自動填上帳號密碼登錄、循環(huán)簽到。但它只執(zhí)行一次,我們要把它加入到計劃任務(wù)crontab中。
0 0 * * * python /root/QQsign.py
#為了測試可以加個輸出日志,如
0 0 * * * python /root/QQsign.py >/root/crontab-run.log 2>&1
以上任務(wù)鄭曉是在root帳戶中創(chuàng)建,定時于每天0點執(zhí)行/root/目錄下的QQsign.py腳本,輸出日志到crontab-run.log文件中。
完成!看看以下的效果截圖,是不是很賤?。?br />
本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。
本文永久鏈接: http://yjfs.org.cn/python-selenium-qqqun-sign.html
你好,請問python3配合windows32怎么實現(xiàn)qq群自動簽到啊