.版本 2
.支持库 spec
.程序集 窗口程序集_启动窗口
.子程序 __启动窗口_创建完毕
.如果真 (文件是否存在 (取运行目录 () + “/gzip.dll”) = 假)
写到文件 (取运行目录 () + “/gzip.dll”, #gzip)
.如果真结束
.子程序 登录, 逻辑型
.参数 账号, 文本型
.参数 密码, 文本型
.局部变量 time, 文本型
.局部变量 header, 文本型
.局部变量 json, 类_json
url = “https://www.zhihu.com/signin?next=%2Fexplore”
return = 到文本 (网页_GZIP解压 (网页_访问_对象 (url, 0, , , a_cookie, #普通协议头, , , , , )))
_xsrf = 文本_取出中间文本 (a_cookie + “;”, “_xsrf=”, “;”)
.如果真 (_xsrf = “”)
信息框 (“登陆失败 获取xsrf为空”, 0, , )
返回 (假)
.如果真结束
url = “https://www.zhihu.com/udid”
return = 到文本 (网页_访问_对象 (url, 1, , a_cookie, cookie, 文本_替换 (#udid协议头, , , , “[xsrf]”, _xsrf), , , , , ))
a_cookie = 网页_Cookie合并更新 (a_cookie, cookie)
' 验证码
url = “https://www.zhihu.com/api/v3/oauth/captcha?lang=en”
return = 到文本 (网页_访问_对象 (url, 0, , a_cookie, cookie, #验证码协议头, , , , , ))
a_cookie = 网页_Cookie合并更新 (a_cookie, cookie)
.如果真 (寻找文本 (return, “true”, , 假) ≠ -1)
调试输出 (“需要验证码”)
url = “https://www.zhihu.com/api/v3/oauth/captcha?lang=en”
return = 到文本 (网页_GZIP解压 (网页_访问_对象 (url, 3, , a_cookie, cookie, #验证码协议头, , , , , )))
data = 文本_取出中间文本 (return, “img_base64” + #引号 + “:” + #引号, #引号)
data = 文本_替换 (data, , , , “\n”, #换行符)
data = 取文本左边 (data, 取文本长度 (data) - 2)
' 写到文件 (“g:/桌面/1.jpg”, 编码_BASE64解码 (data))
.循环判断首 ()
延迟 (1000)
.循环判断尾 (取文本长度 (编辑框_账号.内容) ≠ 4)
a_cookie = 网页_Cookie合并更新 (a_cookie, cookie)
' 提交验证码
url = “https://www.zhihu.com/api/v3/oauth/captcha?lang=en”
data = 文本_替换 (#验证码内容, , , , “[验证码]”, 编辑框_账号.内容)
return = 到文本 (网页_GZIP解压 (网页_访问_对象 (url, 1, , a_cookie, cookie, 文本_替换 (#提交验证码协议头, , , , “[xsrf]”, _xsrf), , , , , )))
a_cookie = 网页_Cookie合并更新 (a_cookie, cookie)
.如果真结束
url = “https://www.zhihu.com/api/v3/oauth/sign_in”
time = 时间_取现行时间戳 ()
data = 编码_运行JS代码 (#登录js, “getEncrypt”, 账号, 密码, time)
return = 编码_utf8到gb2312 (到文本 (网页_GZIP解压 (网页_访问_对象 (url, 1, data, a_cookie, cookie, 文本_替换 (#登录协议头, , , , “[xsrf]”, _xsrf), header))))
json.解析 (return)
' 网页_GZIP解压
a_cookie = 网页_Cookie合并更新 (a_cookie, cookie)
.如果真 (寻找文本 (return, “user_id”, , 假) = -1)
调试输出 (“失败 ” + json.取通用属性 (“error.message”))
' 调试输出 (“登录失败”, return, data)
返回 (假)
.如果真结束
返回 (真)
.子程序 _按钮_登录_被单击
按钮_点赞.禁止 = 取反 (登录 (编辑框_账号.内容, 编辑框_密码.内容))
信息框 (“登录 ” + 选择 (按钮_点赞.禁止, “失败”, “成功”), 0, , )
.子程序 _按钮_点赞_被单击
.局部变量 id, 文本型
.局部变量 header, 文本型
id = 文本_取右边 (编辑框_文章.内容, “answer/”)
.如果真 (id = “”)
信息框 (“请填写文章地址”, 0, , )
返回 ()
.如果真结束
return = 到文本 (网页_访问 (“https://www.zhihu.com/api/v4/answers/598563497/voters”, 1, #点赞, a_cookie, , 文本_替换 (#点赞协议头, , , , “[xsrf]”, _xsrf), header, , , ))
调试输出 (return, header)
return = 文本_取出中间文本 (return, “voteup_count” + #引号 + “:”, “}”)
.如果 (return ≠ “”)
信息框 (“点赞成功”, 0, , )
.否则
信息框 (“点赞失败”, 0, , )
.如果结束