我在校园爬虫打卡


Ⅰ. 下载Fiddler抓取https包

Download Fiddler Classic

允许抓取 https

image-20210123135754356

最后点击 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

接下来添加代码!

设置触发器,每天定时执行代码~

cron表达式详解

好了,到这里基本上就结束了。

Ⅵ. 总结

闲来无事想试试小程序爬虫,不过这个 token 貌似只有四天左右的时间,这个功能好像有些不好用~

如果想知道自己有没有打卡成功,可以用一些提醒工具发送信息给微信来提醒自己打卡是否成功!!!


文章作者: incipe
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 incipe !
评论
 上一篇
虚拟机连接摄像头黑屏问题 虚拟机连接摄像头黑屏问题
Ⅰ. 问题 虚拟机连接好 usb 摄像头后,调用 cheese 后都是黑屏,没有任何显示,无法点击任何按钮。 Ⅱ. 解决办法 这样子就完美解决了,哈哈~
2021-01-27
下一篇 
opencv移植 opencv移植
注:本篇博客已经弃用,请不要浪费时间阅读,笔者有空会更新最新的移植教程~ 最新文章移植opencv3.2.0含opencv_contrib 一. 移植依赖库主要需要移植如下几个依赖库: zlib-1.2.11 jpegsrc.v9b li
2020-12-30
  目录