古詩詞大全網 - 個性簽名 - 如何用Python實現微信自動簽到功能

如何用Python實現微信自動簽到功能

作者:LittleCoder

鏈接:/question/51160419/answer/124460961

來源:知乎

著作權歸作者所有,轉載請聯系作者獲得授權。

普通的網頁點擊:

1. 建議通過瀏覽器或者Wireshark分析消息的交互。

2. 之後通過requests模擬。

由於沒有具體的網址,我沒有辦法給出具體的代碼。

給公眾號發送特定的問題:

1. 建議使用Python的微信API(pip install itchat)

2. 由於沒有提供Python版本,我這裏給出兼容的解決方案

#coding=utf8

import threading

import itchat

SIGN_IN_MP_DICT = {

u'學校微信公眾號': u'學校簽到口令',

u'公司微信公眾號': u'公司簽到口令', }

def get_day(timeGap):

return int(time.strftime('%y%m%d', time.localtime(time.time() + timeGap)))

NEXT_SIGN_DATE = get_day(60*60*24)

def sign_in_thread():

''' 簽到線程

如果尚未到需要簽到的日期,則繼續循環

如果到了需要簽到的日期,則完成兩個公眾號的簽到,並更新日期

'''

while 1:

if get_day < NEXT_SIGN_DATE:

time.sleep(30)

else:

for k, v in SIGN_IN_MP_DICT.items():

itchat.send(msg=v,

toUserName=itchat.search_mps(name=k)[0]['UserName'])

NEXT_SIGN_DATE = get_day(60*60*24)

itchat.auto_login(True)

# 測試是否存在特定公眾號

for mpName in SIGN_IN_MP_DICT.keys():

mpList = itchat.search_mps(name=mpName)

if len(mpList) != 1:

print(u'沒有檢測到公眾號“%s”,請檢查名稱')

break

else:

signInThread = threading.Thread(target=sign_in_thread)

signInThread.setDaemon(True)

signInThread.start()

itchat.run()