Loading... 博主研发了一个洛谷自动打卡机。**请勿滥用**。 <!--more--> ## 代码 ```python # 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`。 没得包的请安装依赖。 ```bash pip install requests ``` ```bash python ./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的报告。 会随机输出错误。但是打卡成功。窝马上修理。<hr class="content-copyright" style="margin-top:50px" /><blockquote class="content-copyright" style="font-style:normal"><p class="content-copyright">版权属于:淡淡的路瑶</p><p class="content-copyright">本文链接:<a class="content-copyright" href="https://www.starroad.top/archives/717.html">https://www.starroad.top/archives/717.html</a></p><p class="content-copyright">如果文章出现任何问题,请下方评论,紧急情况请发邮件。谢谢支持!</p></blockquote> Last modification:February 24th, 2020 at 10:31 pm © 禁止转载 Support 如果您觉得我的文章有用,给颗糖糖吧~ ×Close Appreciate the author Sweeping payments Pay by AliPay Pay by WeChat
10 comments
窝要写洛谷日报,怕和洛谷协议冲突,所以在窝发表日报之前拒绝转载。 ::tieba:Y.tb8::
资瓷自此
say something...
有机会研究一下,谢谢,想用Python写个本地洛谷客户端
照着发包即可。
tqltql
所以您测试没 ::QQ:Y.qq1::
Orz
emmm,窝需要各位的测试结果啊。