在馒头,我被 ban 了两个账号了,甚是可惜。最近又拿到邀请,成功入站,决心认真一点对待。40天未登录就ban账号的规则说实话还是有点严格,但是没办法,得遵循他们的规则
打算写代码自动模拟登录的,但是稍许有些麻烦。网上搜了一下也有现成的模拟登录的项目,但看上去部署太复杂,就没有兴趣阅读下去了。
发现可以利用 cron 和 curl 直接模拟登录,借用 chrome dev tool 的 copy request as curl(bash) 功能,可以把整个请求包含 cookie 复制下来,方便通过 curl 调用。
写一个 bash 脚本,cron 执行访问馒头的 userdetail 页面。
脚本位置 /home/dk/temp/mteam.sh
, cron 内容, 意思是每周五的上午11点执行一次,并把日志输出到 /home/dk/temp/mteam-login-logs
目录下的 log 文件里,文件名举例: 2023-02-21_14-27-26.log
cron 内容
0 11 * * 5 bash /home/dk/temp/mteam.sh >/home/dk/temp/mteam-login-logs/$(date +%Y-%m-%d_%H-%M-%S).log
mteam.sh 脚本本身内容(已打码)
#!/bin/bash
set -e
curl 'https://kp.m-team.cc/userdetails.php?id=xxxxxx' \
-H 'authority: kp.m-team.cc' \
-H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7' \
-H 'accept-language: zh,zh-CN;q=0.9,en-US;q=0.8,en;q=0.7' \
-H 'cache-control: no-cache' \
-H 'cookie: tp=xxxxxx; cf_clearance=xxxxxx' \
-H 'dnt: 1' \
-H 'pragma: no-cache' \
-H 'sec-ch-ua: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"' \
-H 'sec-ch-ua-mobile: ?0' \
-H 'sec-ch-ua-platform: "Windows"' \
-H 'sec-fetch-dest: document' \
-H 'sec-fetch-mode: navigate' \
-H 'sec-fetch-site: none' \
-H 'sec-fetch-user: ?1' \
-H 'upgrade-insecure-requests: 1' \
-H 'user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36' \
--compressed
查看生成的 log 文件,请求之后返回了一个完整的 html 静态页面