色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

使用python實現微信小程序自動簽到功能

瀏覽:2日期:2022-07-27 11:32:27

功能描述目標

完成多賬號微信小程序每天自動簽到

輸出

簽到成功則向微信群發送簽到成功的信息否則提示用戶簽到失敗,需手動簽到

包管理

requestsitchattimethreading

程序的結構設計步驟1

獲取要發送的json數據:地址

步驟2

向服務器發送請求

步驟3

根據服服務器響應判斷簽到是否完成

步驟4

微信交互

代碼實現使用findler抓包工具查看請求類型

https://reserve.25team.com/wxappv1/yi/index?version=13

可以看到,該小程序使用的是https,因此可以使用python爬蟲來實現模擬用戶簽到的功能我們先對該url發送一次請求,查看服務器返回的內容

import requestsdef request_h(url): headers = { 'Accept-Encoding': 'gzip, deflate, br', 'User-Agent': 'Mozilla / 5.0', 'content-type': 'application / json', 'Referer': 'https: // servicewechat.com / wxd2bebfc67ee4a7eb / 45 / page - frame.html', # 設置token 'token': '可以再findler請求欄查看自己的token', 'Connection': 'keep - alive', 'Host': 'reserve.25team.com' } r = requests.get(url, headers=headers, json=json) return rif __name__ == ’__main__’: url = 'https://reserve.25team.com/wxappv1/yi/addReport' res = request_h(url) print(res.text)

在代碼當中,最主要的部分是請求頭的設置,其中token尤為重要,它是服務器檢驗用戶身份的一個重要手段,當然它的功能不僅于此

什么是token

請求發出后,服務器返回內容是一個json數據,我們在小程序中所看到的內容就是由這些json數據組成的,我們在實現簽到功能的時候,也是由客戶端向服務器發送一段json數據,我們先來看看我們要發送的json數據的結構

再次使用findler抓包,查看請求內容

https:reserve.25team.com/wxappv1/y1/adReport

當我們點擊信息上報的時候,實際上就是向上面的網站發送了一段json數據,具體內容如下

使用python實現微信小程序自動簽到功能

我們可以看到,客戶端是使用post請求發送數據的,在findler中點擊請求欄上面的JSON,就可以看到我們所發送的JSON數據,如下:

# json = {'content':{'0':'否','1':'','2':'','3':'','4':'','5':'否','6':'否','7':'否','8':'正常','9':'37.2及以下','10':'陜西省延安市子長市子長市統計局政法大樓 經緯度:109.67538,37.14258','11':'否','12':'','13':'','14':''},'version':13,'stat_content':{'今日是否在京':'否','今日是否在湖北?':'否','今日是否“密切接觸”疑似或確診人群?':'否','今日是否在集中隔離點隔離':'否','今日本人身體情況(多選)':'正常'},'location':{'province':'陜西省','country':'中國','city':'延安市','longitude':109.67538,'latitude':37.14258},'sick':'','accept_templateid':''}

這段json數據中,除地址以外,其他的數據都是服務器默認填好的,因此我們在發送數據時,只需要改動一下json數據當中的location即可那么怎么獲取位置呢,騰訊給我我們提供了一個接口,我們可以使用這個接口查看自己的位置信息,代碼如下:

# 獲取定位信息的.pyimport requestsimport jsonurl = 'https://restapi.amap.com/v3/geocode/regeo?location=109.67538,37.14258&key=a0599c316b9533a47162b9044a64f659&extensions=base'headers = { 'Accept-Encoding': 'gzip, deflate, br', 'User-Agent': 'Mozilla/5.0', 'content-type': 'application/json', 'Referer': 'https://servicewechat.com/wxd2bebfc67ee4a7eb/45/page-frame.html', 'Connection': 'keep-alive', 'Host': 'restapi.amap.com'}r = requests.get(url, headers=headers)print(r.json())

這里的url是我點擊小程序當中的獲取當前位置時,使用findler抓包工具抓取的同樣,這個地址接口也向我們響應了一個json數據

使用python實現微信小程序自動簽到功能

我們直接將返回的json數據插入到要發送的json數據中即可

使用多線程完成多用戶提交的功能

代碼如下

import requestsfrom threading import Threadimport timedef request_h(url,json,token): headers = { 'Accept-Encoding': 'gzip, deflate, br', 'User-Agent': 'Mozilla / 5.0', 'content-type': 'application / json', 'Referer': 'https: // servicewechat.com / wxd2bebfc67ee4a7eb / 45 / page - frame.html', 'token': token, 'Connection': 'keep - alive', 'Host': 'reserve.25team.com' } while True: r = requests.post(url, headers=headers, json=json) print(r.text) time.sleep(60*60*24)if __name__ == ’__main__’: url = ’https://reserve.25team.com/wxappv1/yi/addReport’ jsons = [{'content': {'0': '否', '1': '', '2': '', '3': '', '4': '', '5': '否', '6': '否', '7': '否', '8': '正常', '9': '37.2及以下', '10': '陜西省延安市子長市子長市統計局政法大樓 經緯度:109.67538,37.14258', '11': '否', '12': '', '13': '', '14': ''}, 'version': 13, 'stat_content': {'今日是否在京': '否', '今日是否在湖北?': '否', '今日是否“密切接觸”疑似或確診人群?': '否', '今日是否在集中隔離點隔離': '否', '今日本人身體情況(多選)': '正常'}, 'location': {'province': '陜西省', 'country': '中國', 'city': '延安市', 'longitude': 109.67538, 'latitude': 37.14258}, 'sick': '', 'accept_templateid': ''}] tokens = ['eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjo1MjQzMSwiZXhwIjoxNjg1MDY2MTQ1LCJpc3MiOiJnaW4tYmxvZyJ9.2PB-82BkbgUI6pOzglN6oMP8KpiHJhmu8KF1iilWAgc'] threads = [] n = 0 for js in jsons: t = Thread(target=request_h, args=(url, js, tokens[n])) n += 1 t.start() threads.append(t) for t in threads: t.join()

其中,因為服務器根據token來分辨用戶,要注意token和json數據的一一對應

使用itchat第三方庫實現微信自動回復

因為微信官方的原因,有些用戶無法使用itchat來進行自動回復,因此這部分代碼我就不寫了,大家可以再網上查到itchat文檔具體實現如下:

微信自動登錄 根據服務器返回的json數據判斷是否簽到成功 簽到成功則在對應群里發送成功標志 簽到失敗則向文件傳輸助手發送失敗原因

正好之前我在阿里云買了一年的服務器,可以將程序安裝到服務器上,再設置后臺運行,這樣的話就可以實現每天自動簽到了沒有服務器的話,大家可以將程序部署到自己的電腦上,但是因為程序耗時較長,所以我不建議這么做

使用scp命令將程序發送到 遠程 家目錄下的 Documents

scp -r app_sign.py root@47.105.49.126:/Documents

使用ssh命令打開遠程服務器

這里不需要密碼是因為我之前設置過免密登陸

如何設置免密登陸

ssh root@47.105.49.126

進入到以下頁面說明連接成功了

使用python實現微信小程序自動簽到功能

可以看到我之前發送的.py文件已經發送到了服務器目錄下

使用python實現微信小程序自動簽到功能

設置程序后臺運行

nohup python3 app_sign.py > run.log 2>& 1

nohup是永久執行的命令,如果疫情結束不需要簽到的話,需要使用kiil命令關閉進程

OK,這就是整個程序的實現過程

到此這篇關于使用python實現微信小程序自動簽到功能的文章就介紹到這了,更多相關python 微信小程序簽到內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 微信 Python
相關文章:
主站蜘蛛池模板: 欧美日韩美女 | 玖草在线观看 | 国产精品99久久久久久小说 | 波多野结衣一区在线观看 | 亚洲一区二区精品 | 天天夜天干天天爽 | 欧美一级毛片一免费 | 国内精品美女写真视频 | 日韩一级欧美一级一级国产 | 6一12呦女精品 | 男女性高清爱潮视频免费观看 | 久久精品国产精品亚洲毛片 | 性色午夜视频免费男人的天堂 | 国产成人a大片大片在线播放 | 欧美一级毛片片aa视频 | 亚洲精品视频在线观看免费 | 第一区免费在线观看 | 国产香蕉成人综合精品视频 | 制服丝袜怡红院 | 一色屋成人免费精品网 | 八戒午夜精品视频在线观看 | a欧美在线 | 免费观看一级欧美在线视频 | 欧美三级不卡视频 | 免费成年人视频网站 | 国产精品高清视亚洲一区二区 | 12至16末成年毛片视频 | 欧美一级做一级爱a做片性 欧美一欧美一级毛片 | 亚洲国产精品线在线观看 | 日韩毛片欧美一级国产毛片 | 顶级毛片在线手机免费看 | 一区二区不卡久久精品 | 日日a.v拍夜夜添久久免费 | 亚洲精品国产第一区二区三区 | 91视频99 | 91久久综合 | 久久91av | 国产精品欧美亚洲 | 免费公开视频人人人人人人人 | 欧美国产一区二区 | 在线男人的天堂 |