博主研发了一个洛谷自动打卡机。请勿滥用。
代码
# codeing:utf8
# codeing:utf8
import requests
import json
import sys
def punch(cookie):
    return requests.get('https://www.luogu.com.cn/index/ajax_punch', headers={
        "Host": "www.luogu.com.cn",
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv: 73.0) Gecko/20100101 Firefox/73.0",
        "Accept": "*/*",
        "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
        "Accept-Encoding": "gzip, deflate, br",
        "Connection": "keep-alive",
        "Referer": "https://www.luogu.com.cn/",
        "Cache-Control": "no-cache",
        "TE": "Trailers",
        "Cookie": cookie
    }).text
if __name__ == "__main__":
    print('脚本名为:', sys.argv[0], '\n')
    for i in range(1, len(sys.argv)):
        kkksc03 = punch(sys.argv[i])
        print(u'第', i, u'个打卡的结果:\n', kkksc03)
        try:
            ioi = json.loads(kkksc03)
            if ioi['code'] == 200:
                print('code =', ioi['code'], 'message =', ioi['more']['html'])
            else:
                print('code =', ioi['code'], 'message =', ioi['message'])
        except:
            print(u'错误:无法解码返回的json信息。')食用方法
首先通过浏览器的开发者工具搞到你的cookie,然后运行这段脚本,在后面以字符串的形式添加你的cookie。下面是一个实例。设脚本文件名称为punch.py。
没得包的请安装依赖。
pip install requestspython ./punch.py "__client_id=kkk03akioi; UM_distinctid=222333111444-chenzhe-114514-dfhka-88888888; _uid=40003; CNZZDATA22606=cnzz_eid%sdasdasdas" "__client_id=kkk03akioi; UM_distinctid=222333111444-chenzhe-114514-dfhka-88888888; _uid=40003; CNZZDATA22606=cnzz_eid%sdasdasdas"上面的cookie仅供娱乐。
输出分析
如果程序运行正常。
- 第一行输出脚本信息。
- 以下,每行输出一个 - cookie的打卡情况。- code为$200$:打卡成功,后面接运势;
- code为$201$:打卡失败,后面接原因;
- code为其他值:打卡失败,后面接原因- message,如无法阅读请到- utf8环境下运行。如确实需要帮助请告知博主。
 
已知Bug
Python2
使用Python2的同学可能发现输出一些奇特字符,打卡也可能成功。
博主强烈建议大家升级到Python3。窝不想滋滋Python2。
同理,安装了两个版本的Python的同学需要使用Python3运行脚本。
首次打卡会出锅
感谢来自ytha的报告。
会随机输出错误。但是打卡成功。窝马上修理。
版权声明:本文是原创文章,版权归 星雾月雨 所有。
本文链接:https://www.ariels.xyz/archives/717.html
本站所有下方标记为「允许规范转载」的原创文章均采用 署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。
您可以自由地转载,但请务必注明文章来源且不可用于商业目的。
 
                             
                            
12 comments
怎么查看自己的Cookie?OωO
在F12
窝要写洛谷日报,怕和洛谷协议冲突,所以在窝发表日报之前拒绝转载。 ::tieba:Y.tb8::
资瓷自此
say something...
有机会研究一下,谢谢,想用Python写个本地洛谷客户端
照着发包即可。
tqltql
所以您测试没 ::QQ:Y.qq1::
Orz
emmm,窝需要各位的测试结果啊。