Ⅰ. 下载Fiddler抓取https包
允许抓取 https 包
最后点击 ok 即可,第一次可能会有个警告,点击 yes 信任就好了。
Ⅱ. 分析我在校园打卡包
现在我们可以成功抓取 https 包了,登录微信,打开我在校园小程序。依次登录你会看到 fildder 抓到了各种包。
这些都是一些请求,我们并不需要,当点击 提交 按钮的时候,会出现一个新的 post 请求,我们只需要往这个 url 发送带 json 数据的 post 请求即可!
我们看下携带的数据:
最后,为了模拟登录,我们还需要获取登录后的 token
现在我们需要发送的信息都抓到了,利用 python 模拟发送请求就好了。
Ⅲ. python发送post请求
代码如下:
import requests
import datetime
import time
class Auto:
def __init__(self):
self.token_array = [""] # 双引号里面填获取到的token
self.url = "https://student.wozaixiaoyuan.com/health/save.json"
self.headers = {
"Host": "student.wozaixiaoyuan.com",
"Connection": "keep-alive",
"Content-Length": "310",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1 WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36 MicroMessenger/7.0.9.501NetType/WIFI MiniProgramEnv/Windows WindowsWechat",
"content-type": "application/x-www-form-urlencoded",
"token": "",
"Referer": "https://servicewechat.com/wxce6d08f781975d91/158/page-frame.html",
"Accept-Encoding": "gzip, deflate, br",
}
self.data = {
"answers": '["0"]',
"latitude": "XX.1145XX",
"longitude": "XXX.031847",
"country": "中国",
"city": "xx市",
"district": "xx县",
"province": "xx省",
"township": "xx街道",
"street": "xx路",
"areacode": "xxxx24",
}
def run(self):
for token in self.token_array:
self.headers["token"] = token
print("token is: " + self.headers["token"])
print(datetime.datetime.now())
response = requests.post(
self.url, data=self.data, headers=self.headers)
if response.status_code == 200:
print("success")
print(response.content.decode())
else:
print(response.status_code)
if __name__ == "__main__":
Auto().run()
Ⅳ. 部署到云函数
登录腾讯云,没有账号的注册一个。
函数名自己定义就好了,运行环境选 python3.6
接下来添加代码!
设置触发器,每天定时执行代码~
好了,到这里基本上就结束了。
Ⅵ. 总结
闲来无事想试试小程序爬虫,不过这个 token 貌似只有四天左右的时间,这个功能好像有些不好用~
如果想知道自己有没有打卡成功,可以用一些提醒工具发送信息给微信来提醒自己打卡是否成功!!!