#如何创建签到模板
大坑,慎入
您可能需要知道
- HTTP 协议
- Web Service 原理(cookie,session,header等)
- Javascript
##准备工作
- 2个尚未签到的帐号,如果没有只能分两天进行了(或者到 bugmenot.com 上碰运气)
- 一个 Chrome 浏览器
- 打开 Chrome,新建隐身窗口(重要)
- 打开开发者工具(
ctrl+shift+I
,或者 鼠标右键 > 审查元素) - 切换到 Network(网络)面板,勾选 Preserve log (非常重要)
- 因为非常重要,再说一遍,勾选 Preserve log (保留请求日志)
- 输入登录页面,输入用户名密码登录
- 直奔签到页,完成签到
在 Network 面板中,右键点击任何一个请求,选 Save as HAR with Content 将文件保存到本地
- qiandao.today/har/edit 将刚才保存的 HAR 文件上传。
- 填写登录时用的用户名、密码(用户名密码不会被保存,只用于查找请求中的用户名、密码)
- 猜猜看哪些请求是登录和签到必要的。经验上,以下请求是必要的:
- 登录页面
- 登录页面的POST
- 发出用户名、密码的请求
- 发送后导致页面跳转的页面
- 翻页前后的第一个页面
- 将用户名、密码、Cookie、header 等根据用户变化的部分,用类似
{{ username }}
的模板替换。(模板支持 jinja2 语法) - 使用请求编辑中的测试面板,测试模板返回是否正确,分别使用正确的和错误的用户名进行测试,填写正确/错误断言。有助于发现签到失败和模板失效。
- 请求中需要上一个请求中的某些数据时,使用变量提取,通过正则提取数据保存在环境变量中。使用
ab(\w+)cd
,组选择器,选择其中的一部分。 - 当完成所有请求编辑之后,使用下载按钮旁的测试,进行整体测试。
- 编辑中的 HAR 会自动保存在浏览器缓存中,不用担心会丢失。
首先尝试寻找 wap 版的页面,往往页面会比较简单。如果您能破解加密方法,可以写成一个函数,在模板中调用。
目前没办法,只能通过 Cookie 验证绕过。
为了帮用户发出请求,用户名、密码终究需要被记录的,这只能靠服务器维护者自律。但在存储时,使用每个用户均不相同的密钥加密。通过主程序密钥对用户密钥加密,保证在仅获得数据库是无法解出用户数据。(加密的用户数据包括用户上传的模板,用户为登录设置的变量)
如果您依然担心,可以自行搭建系统,下载模板在您自己的服务器上运行签到。