當(dāng)前位置:博客首頁>>Python >> 閱讀正文

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 />qqsign

? ? ? ?

本文采用知識共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進行許可,轉(zhuǎn)載時請注明出處及相應(yīng)鏈接。

本文永久鏈接: http://yjfs.org.cn/python-selenium-qqqun-sign.html

python+selenium實現(xiàn)QQ群自動簽到:目前有25 條留言

用戶評論頭像 無乘國之君發(fā)表于 2021年05月30日 15:10[回復(fù)]

你好,請問python3配合windows32怎么實現(xiàn)qq群自動簽到啊

用戶評論頭像 云夢發(fā)表于 2019年12月10日 13:24[回復(fù)]

誰有像我愛網(wǎng)的QQ和游戲簽到接口或程序

用戶評論頭像 人群中的小黑發(fā)表于 2018年12月02日 16:48[回復(fù)]

簽到的腳本是不是不能用了啊 ?[Errno 11004] getaddrinfo failed

用戶評論頭像 滑稽發(fā)表于 2018年02月19日 03:19[回復(fù)]

復(fù)制到QPython上運行前幾行的空格總是報錯,刪掉手打之后又不報錯了,但是第七行倒數(shù)第二段總是顯示語法錯誤,我試了很多方法都無法解決,想問一下是什么原因造成的

    用戶評論頭像 鄭曉發(fā)表于 2018年02月19日 19:59[回復(fù)]

    檢查一下空格縮進吧,Python對縮進還是很嚴(yán)格, tab和空格不能混用

      用戶評論頭像 滑稽發(fā)表于 2018年02月21日 22:39[回復(fù)]

      Chrome/51.0.2704.84 Safari/537.36″}

      SyntaxError: invalid syntax
      第七行的最后這一部分總是報錯,刪除內(nèi)容的話報錯位置也會改變,大神能幫忙看一下嗎

        用戶評論頭像 鄭曉發(fā)表于 2018年02月22日 15:14[回復(fù)]

        語法錯誤,檢查引號是否是英文半角引號,還有縮進的空格,最好都刪除縮進重新敲一遍。

        用戶評論頭像 tao發(fā)表于 2018年07月21日 06:04[回復(fù)]

        Chrome/51.0.2704.84 Safari/537.36″}
        51.0.2704的.0.報錯怎么辦

          用戶評論頭像 鄭曉發(fā)表于 2018年07月22日 22:28[回復(fù)]

          不知道這里會報什么錯,你可以把這段刪除,應(yīng)該不影響的。

用戶評論頭像 as3344521發(fā)表于 2018年01月20日 08:49[回復(fù)]

謝謝分享 大贊

用戶評論頭像 11發(fā)表于 2018年01月18日 14:40[回復(fù)]

好像簽到功能失效了啊,

Traceback (most recent call last):
File “a.py”, line 39, in
for cookie in cookies:
TypeError: ‘NoneType’ object is not iterable

    用戶評論頭像 鄭曉發(fā)表于 2018年01月19日 15:08[回復(fù)]

    可能登錄失敗導(dǎo)致cookie不正確

      用戶評論頭像 1發(fā)表于 2018年01月19日 15:22[回復(fù)]

      怎么處理呢

用戶評論頭像 zh30發(fā)表于 2017年08月12日 08:55[回復(fù)]

大神請您告訴我如何用Python批量下載QQ相冊原圖啊,我很需要這樣的教程啊,這樣的教程才是真正的干貨?。。?!啊啊啊, 大神求你寫一篇吧,謝謝啦大神

    用戶評論頭像 鄭曉發(fā)表于 2017年08月14日 14:46[回復(fù)]

    你是程序猿嗎?其實只要能得到空間的登錄狀態(tài),這些都不是事啊,參考qq空間手機版,用chrome可以很輕松的得到它獲取相冊列表的接口…

      用戶評論頭像 zh30發(fā)表于 2017年08月15日 14:58[回復(fù)]

      我不是程序員啊 不過有個詳細(xì)教程應(yīng)該問題不大啊

        用戶評論頭像 鄭曉發(fā)表于 2017年08月16日 09:41[回復(fù)]

        等抽空可以寫一下

          用戶評論頭像 zh30發(fā)表于 2017年08月18日 22:50[回復(fù)]

          好滴 3克Sns

            用戶評論頭像 鄭曉發(fā)表于 2017年08月22日 14:58[回復(fù)]

            發(fā)了一篇關(guān)于自動登錄空間和采集相冊的,你可以看一下。

              用戶評論頭像 zh30發(fā)表于 2017年08月26日 00:18[回復(fù)]

              好的 馬上去看看

用戶評論頭像 毛毛發(fā)表于 2017年06月26日 20:02[回復(fù)]

你好,如果實現(xiàn) QQ空間發(fā)表說說啊,發(fā)表說說總是提示元素不在

    用戶評論頭像 鄭曉發(fā)表于 2017年06月27日 23:42[回復(fù)]

    看看是不是嵌套有iframe框架

用戶評論頭像 儉樸的廢柴發(fā)表于 2016年09月26日 18:38[回復(fù)]

你好,我根據(jù)你的代碼,在桌面環(huán)境下可以正常登錄并簽到,但是當(dāng)在centos 無桌面環(huán)境時,總是登錄不了,導(dǎo)致拿不到cookie,各個點擊加載我也加了等待時間的。各元素都能找到,就是登陸不了。

    用戶評論頭像 鄭曉發(fā)表于 2016年09月26日 20:24[回復(fù)]

    應(yīng)該是出驗證碼了…驗證碼很惡心的

用戶評論頭像 蒂歐娜發(fā)表于 2016年07月23日 16:59[回復(fù)]

您的博客擁有旺盛的生命力??!

發(fā)表評論

change vcode