欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用python實(shí)現(xiàn)微信小程序自動(dòng)簽到功能

 更新時(shí)間:2020年04月27日 10:15:23   作者:神筆小新  
這篇文章主要介紹了使用python實(shí)現(xiàn)微信小程序自動(dòng)簽到功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

功能描述目標(biāo)

完成多賬號(hào)微信小程序每天自動(dòng)簽到

輸出

簽到成功則向微信群發(fā)送簽到成功的信息
否則提示用戶簽到失敗,需手動(dòng)簽到

包管理

requests
itchat
time
threading

程序的結(jié)構(gòu)設(shè)計(jì)步驟1

獲取要發(fā)送的json數(shù)據(jù):地址

步驟2

向服務(wù)器發(fā)送請(qǐng)求

步驟3

根據(jù)服服務(wù)器響應(yīng)判斷簽到是否完成

步驟4

微信交互

代碼實(shí)現(xiàn)使用findler抓包工具查看請(qǐng)求類型

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

可以看到,該小程序使用的是https,因此可以使用python爬蟲來(lái)實(shí)現(xiàn)模擬用戶簽到的功能
我們先對(duì)該url發(fā)送一次請(qǐng)求,查看服務(wù)器返回的內(nèi)容

import requests
def 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",
    # 設(shè)置token
    "token": "可以再findler請(qǐng)求欄查看自己的token",
    "Connection": "keep - alive",
    "Host": "reserve.25team.com"
  }
  r = requests.get(url, headers=headers, json=json)
  return r


if __name__ == '__main__':
  url = "https://reserve.25team.com/wxappv1/yi/addReport"
  res = request_h(url)
  print(res.text)

在代碼當(dāng)中,最主要的部分是請(qǐng)求頭的設(shè)置,其中token尤為重要,它是服務(wù)器檢驗(yàn)用戶身份的一個(gè)重要手段,當(dāng)然它的功能不僅于此

什么是token

請(qǐng)求發(fā)出后,服務(wù)器返回內(nèi)容是一個(gè)json數(shù)據(jù),我們?cè)谛〕绦蛑兴吹降膬?nèi)容就是由這些json數(shù)據(jù)組成的,我們?cè)趯?shí)現(xiàn)簽到功能的時(shí)候,也是由客戶端向服務(wù)器發(fā)送一段json數(shù)據(jù),我們先來(lái)看看我們要發(fā)送的json數(shù)據(jù)的結(jié)構(gòu)

再次使用findler抓包,查看請(qǐng)求內(nèi)容

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

當(dāng)我們點(diǎn)擊信息上報(bào)的時(shí)候,實(shí)際上就是向上面的網(wǎng)站發(fā)送了一段json數(shù)據(jù),具體內(nèi)容如下

這張圖片是客戶端的請(qǐng)求信息

我們可以看到,客戶端是使用post請(qǐng)求發(fā)送數(shù)據(jù)的,在findler中點(diǎn)擊請(qǐng)求欄上面的JSON,就可以看到我們所發(fā)送的JSON數(shù)據(jù),如下:

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

這段json數(shù)據(jù)中,除地址以外,其他的數(shù)據(jù)都是服務(wù)器默認(rèn)填好的,因此我們?cè)诎l(fā)送數(shù)據(jù)時(shí),只需要改動(dòng)一下json數(shù)據(jù)當(dāng)中的location即可
那么怎么獲取位置呢,騰訊給我我們提供了一個(gè)接口,我們可以使用這個(gè)接口查看自己的位置信息,代碼如下:

# 獲取定位信息的.py
import requests
import json
url = "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是我點(diǎn)擊小程序當(dāng)中的獲取當(dāng)前位置時(shí),使用findler抓包工具抓取的
同樣,這個(gè)地址接口也向我們響應(yīng)了一個(gè)json數(shù)據(jù)

在這里插入圖片描述

我們直接將返回的json數(shù)據(jù)插入到要發(fā)送的json數(shù)據(jù)中即可

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

代碼如下

import requests
from threading import Thread
import time
def 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": "陜西省延安市子長(zhǎng)市子長(zhǎng)市統(tǒng)計(jì)局政法大樓 經(jīng)緯度:109.67538,37.14258", "11": "否", "12": "",
            "13": "", "14": ""}, "version": 13,
      "stat_content": {"今日是否在京": "否", "今日是否在湖北?": "否", "今日是否“密切接觸”疑似或確診人群?": "否", "今日是否在集中隔離點(diǎn)隔離": "否",
               "身體情況(多選)": "正常"},
      "location": {"province": "陜西省", "country": "中國(guó)", "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()

其中,因?yàn)榉?wù)器根據(jù)token來(lái)分辨用戶,要注意token和json數(shù)據(jù)的一一對(duì)應(yīng)

使用itchat第三方庫(kù)實(shí)現(xiàn)微信自動(dòng)回復(fù)

因?yàn)槲⑿殴俜降脑?,有些用戶無(wú)法使用itchat來(lái)進(jìn)行自動(dòng)回復(fù),因此這部分代碼我就不寫了,大家可以再網(wǎng)上查到itchat文檔
具體實(shí)現(xiàn)如下:

  • 微信自動(dòng)登錄
  • 根據(jù)服務(wù)器返回的json數(shù)據(jù)判斷是否簽到成功
  • 簽到成功則在對(duì)應(yīng)群里發(fā)送成功標(biāo)志
  • 簽到失敗則向文件傳輸助手發(fā)送失敗原因

正好之前我在阿里云買了一年的服務(wù)器,可以將程序安裝到服務(wù)器上,再設(shè)置后臺(tái)運(yùn)行,這樣的話就可以實(shí)現(xiàn)每天自動(dòng)簽到了
沒(méi)有服務(wù)器的話,大家可以將程序部署到自己的電腦上,但是因?yàn)槌绦蚝臅r(shí)較長(zhǎng),所以我不建議這么做

使用scp命令將程序發(fā)送到 遠(yuǎn)程 家目錄下的 Documents

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

使用ssh命令打開(kāi)遠(yuǎn)程服務(wù)器

這里不需要密碼是因?yàn)槲抑霸O(shè)置過(guò)免密登陸

如何設(shè)置免密登陸

ssh root@47.105.49.126

進(jìn)入到以下頁(yè)面說(shuō)明連接成功了

在這里插入圖片描述

可以看到我之前發(fā)送的.py文件已經(jīng)發(fā)送到了服務(wù)器目錄下

在這里插入圖片描述

設(shè)置程序后臺(tái)運(yùn)行

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

nohup是永久執(zhí)行的命令,如果疫情結(jié)束不需要簽到的話,需要使用kiil命令關(guān)閉進(jìn)程

OK,這就是整個(gè)程序的實(shí)現(xiàn)過(guò)程

到此這篇關(guān)于使用python實(shí)現(xiàn)微信小程序自動(dòng)簽到功能的文章就介紹到這了,更多相關(guān)python 微信小程序簽到內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyautoGui常用教程(一篇掌握)

    PyautoGui常用教程(一篇掌握)

    這篇文章主要介紹了PyautoGui常用教程(一篇掌握),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 通過(guò)Python的speech_recognition庫(kù)將音頻文件轉(zhuǎn)為文字

    通過(guò)Python的speech_recognition庫(kù)將音頻文件轉(zhuǎn)為文字

    recognize_google()?是Google提供的一種語(yǔ)音識(shí)別API,可以識(shí)別音頻文件或麥克風(fēng)錄制的語(yǔ)音,并將其轉(zhuǎn)換為文本,這篇文章主要介紹了通過(guò)Python的speech_recognition庫(kù)將音頻文件轉(zhuǎn)為文字,需要的朋友可以參考下
    2023-05-05
  • Python Numpy中數(shù)組的集合操作詳解

    Python Numpy中數(shù)組的集合操作詳解

    這篇文章主要為大家詳細(xì)介紹了Python Numpy中數(shù)組的一些集合操作方法,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-08-08
  • Python中的map()、apply()、applymap()的區(qū)別小結(jié)

    Python中的map()、apply()、applymap()的區(qū)別小結(jié)

    map()、apply()和applymap()方法是Python中常用的轉(zhuǎn)換方法,,輸出的結(jié)果及類型完全取決于作為給定方法的參數(shù)的函數(shù),本文就來(lái)介紹一下這三種方法的區(qū)別,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • python3實(shí)現(xiàn)UDP協(xié)議的服務(wù)器和客戶端

    python3實(shí)現(xiàn)UDP協(xié)議的服務(wù)器和客戶端

    這篇文章主要為大家詳細(xì)介紹了python3實(shí)現(xiàn)UDP協(xié)議的服務(wù)器和客戶端,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Python黑魔法之metaclass詳情

    Python黑魔法之metaclass詳情

    Python 有很多黑魔法,為了不分你的心,今天只講 metaclass。對(duì)于 metaclass 這種特性,有兩種極端的觀點(diǎn):下面小編將為大家詳細(xì)的介紹,剛興趣的小伙伴可以參考一下
    2021-09-09
  • 利用python和ffmpeg 批量將其他圖片轉(zhuǎn)換為.yuv格式的方法

    利用python和ffmpeg 批量將其他圖片轉(zhuǎn)換為.yuv格式的方法

    今天小編就為大家分享一篇利用python和ffmpeg 批量將其他圖片轉(zhuǎn)換為.yuv格式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • python在linux中輸出帶顏色的文字的方法

    python在linux中輸出帶顏色的文字的方法

    這篇文章主要介紹了python在linux中輸出帶顏色的文字的方法,僅在Linux系統(tǒng)中有效果,一般輸出在控制臺(tái)中,本文用在日志環(huán)節(jié),方便測(cè)試,需要的朋友可以參考下
    2014-06-06
  • Pycharm導(dǎo)包失敗問(wèn)題及解決

    Pycharm導(dǎo)包失敗問(wèn)題及解決

    這篇文章主要介紹了Pycharm導(dǎo)包失敗問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Python二維碼生成識(shí)別實(shí)例詳解

    Python二維碼生成識(shí)別實(shí)例詳解

    這篇文章主要介紹了Python二維碼生成識(shí)別實(shí)例詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評(píng)論