本文同步发表于洛谷。
由于自动登录账号很难,我们考虑先在登陆好的账号上开始写。
先手动 F12 从网络请求里的 Request Headers 找到自己 cookie。
格式例如 cookie_str = "_uid=646208; __client_id=****************************************; C3VK=******"。
(关键信息已经打码,不要迫害我 qwq)
手动点一下打卡,看眼打卡的网络请求,可以发现打卡按钮干的事情是请求 www.luogu.com.cn/index/ajax_… 这个网址。
本来自己搓了个土制请求结果死活返回 ,生气。问了下好像是 CloudFlare 干的,怄火。
在 Gemini 的建议下,请求里做了个伪装,假装自己其实是 Chrome 浏览器,并且将 Referer 设置成了洛谷主页。
可以写出这样的请求:
headers = {
"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"Cookie":cookie_str,
"Referer":"https://www.luogu.com.cn/",
"x-requested-with":"XMLHttpRequest"
}
然后我们尝试一下发一个 GET 请求并且解析一下 JSON。如果解析成功了就表示发成功了,然后看眼它的状态码,如果是 表示打卡成功了, 表示已经打过卡了。
求点个 star 吧/kel