52 自动签到 - xiaoxin01/Blog GitHub Wiki
还在每天访问网站或系统,手动签到吗?No...效率太低了,为啥不让电脑帮你自动签到?
签到系统
GitHub上有免费的签到系统,地址如下:
https://github.com/binux/qiandao
如果不想自己搭建签到系统,可以直接用作者搭建好的:
https://qiandao.today/
新建签到
首先在签到系统注册好账号并登陆。
签到需要网站的cookie信息,获取cookie信息的方法如下:
- 打开Chrome浏览器,按f12打开开发者工具
- 访问需要签到的网站并登陆
- 切换到console标签并输入:document.cookie,即可获取到cookie
然后可以在下面的地址查看已经建好的签到模板,如果想签到的系统已经有模板,可以直接使用
https://qiandao.today/tpls/public
点击模板右侧的“新建签到”,然后输入cookie即可建立自动签到功能。
没有现成的模板可以用?
可以参照下面链接建立签到模板:
https://github.com/binux/qiandao/blob/master/docs/har-howto.md
这里列举一个特殊的签到网站建立模板的方法,网站签到的方式需要回答一个问题,如下图:
图
查看签到提交的form表单需要的数据:
图
看最重要的值是questionid,接着分析如何从html中获取到form表单需要的值
<input type="hidden" name="questionid" value="598">
看起来要从上面这段string中去到特定name的input的value值,正则表达式如下:
(?<=name="questionid" value=")[1-9]\d*
这里用了正则表达式的反向肯定预查,详细描述参见下表
pattern | description |
---|---|
(?:pattern) | 非获取匹配,匹配pattern但不获取匹配结果,不进行存储供以后使用。这在使用或字符“(|)”来组合一个模式的各个部分是很有用。例如“industr(?:y|ies)”就是一个比“industry|industries”更简略的表达式。 |
(?=pattern) | 非获取匹配,正向肯定预查,在任何匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如,“Windows(?=95|98|NT|2000)”能匹配“Windows2000”中的“Windows”,但不能匹配“Windows3.1”中的“Windows”。预查不消耗字符,也就是说,在一个匹配发生后,在最后一次匹配之后立即开始下一次匹配的搜索,而不是从包含预查的字符之后开始。 |
(?!pattern) | 非获取匹配,正向否定预查,在任何不匹配pattern的字符串开始处匹配查找字符串,该匹配不需要获取供以后使用。例如“Windows(?!95|98|NT|2000)”能匹配“Windows3.1”中的“Windows”,但不能匹配“Windows2000”中的“Windows”。 |
(?<=pattern) | 非获取匹配,反向肯定预查,与正向肯定预查类似,只是方向相反。例如,“(?<=95|98|NT|2000)Windows”能匹配“2000Windows”中的“Windows”,但不能匹配“3.1Windows”中的“Windows”。 |
(?<!pattern) | 非获取匹配,反向否定预查,与正向否定预查类似,只是方向相反。例如“(?<!95|98|NT|2000)Windows”能匹配“3.1Windows”中的“Windows”,但不能匹配“2000Windows”中的“Windows”。这个地方不正确,有问题 |
在签到系统的模板界面,访问网站签到的Get请求,添加刚刚的questionid变量获取方式:
图
然后打开网站签到的Post请求,在Request标签的Request添加变量:
图
在预览标签添加签到成功或失败的判断:
图
保存之后签到模板就建立好了,可以通过模板签到:
图