美文网首页
Python实现云之家自动签到

Python实现云之家自动签到

作者: w77996 | 来源:发表于2019-08-07 13:57 被阅读0次

    起因

    偶然看到一个同事设置闹钟,提醒自己下班打开。就突发奇想,既然身为后台开发是不是可以用程序来实现自动打卡的功能呢?
    于是开起来fiddler进行抓包,发现设置代理,云之家无法进行签到功能。既然电脑无法进行代理,那我直接在手机上开启个代理应用进行抓包不就行了么?

    接口分析

    最后抓到的结果签到接口

    [图片上传失败...(image-19a0c1-1565157407399)]

    分析下接口

    • 域名:www.yunzhijia.com
    • 接口:/attendance-signapi/signservice/sign/signIn h2
    • 请求方式:POST
    • 请求参数
      lng=纬度&lat=精度&bssid=&configId=配置ID&networkId=网络ID&userId=用户ID&ssid=
    • 请求头部
      1.user-agent
      2.opentoken
      3.authorization
      4.content-type
      5.accept-language

    试着请求了一下


    image

    编码

    试了一下将获取的接口直接请求,云之家并没有对token的时间进行限制,所以拿到请求参数后可以直接撸代码了。
    考虑了一下java代码的繁重,最后决定用python来完成自动签到的功能。
    本来还用vue+axios写了一个网页版,但是后面发现axios总是会发送一个option请求导致返回错误,最后就没有去实现了。

    python主要用到了三个库:

    • requests
    • json
    • apscheduler

    apscheduler作为定时器实现自动签到的功能

    import requests
    import json
    from apscheduler.schedulers.blocking import BlockingScheduler
    
    
    # 簽到
    def sign_in():
        url = " http://www.yunzhijia.com/attendance-signapi/signservice/sign/signIn?lng=&bssid=&configId=&networkId=&userId=&ssid=&lat="
        headers = {
            "user-agent": "",
            "opentoken": "",
            "authorization": "",
            "accept-language":"",
        }
    
        response = requests.post(url, headers=headers)
        print(response.text)
        response_json = json.loads(response.text)
        print(response_json['success'])
    
    
    
    def job():
        sched = BlockingScheduler()
        sched.add_job(sign_in, 'cron', hour=18, minute=0)
        sched.add_job(sign_in, 'cron', hour=9, minute=0)
        sched.start()
    
    
    if __name__ == '__main__':
        job()
    
    

    结尾

    此代码仅供学习用,我自己写完这个代码后也没有用过,平时也是准点上下班,希望大家不要随意使用,如有侵权问题请联系,随时删除。

    相关文章

      网友评论

          本文标题:Python实现云之家自动签到

          本文链接:https://www.haomeiwen.com/subject/kieodctx.html