利用 cron 和 curl 自动模拟登录馒头,防止账号被 ban
在馒头,我被 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 静态页面
现在的登陆不是userdetails了,我试了下登陆没有这个关键字了
是失效了。馒头模拟登录防止被 ban 有什么好的项目吗?
寻找中,暂时没找到
昨天没注意看。
回你上一个回复,馒头登录时有 cloudflare 检查,我说的是登录之后请求
https://kp.m-team.cc/userdetails.php?id=xxxx
这个页面,登录一直不是这个接口的,我的意思是登录之后访问这个页面,以求账号保活。但是文章中的 curl 应该是过段时间就会失效的,因为 cookie 里的
tp=xxxxxx; cf_clearance=xxxxxx
这两个值应该需要定期更新。想办法更新这两个值就可以了。PT站都好严格
是的,但严格一点有利于网站长期存活……