做了一个查询上海居转户状态的小工具

去年下半年申请了居转户,据说最多要等1年半,所以偶尔会要去上海居转户的网站上查询一下状态。既然是重复性的劳动,那就写个脚本来处理吧。用Chrome抓包,分析一下网页的表单,然后用python的各种库发送请求、解析验证码,最后得到结果。工具放在了github上,执行,把,替换成自己的身份证号、密码,或

做了一个查询上海居转户状态的小工具

  

去年下半年申请了居转户,据说最多要等1年半,所以偶尔会要去上海居转户的网站上查询一下状态。

  

既然是重复性的劳动,那就写个脚本来处理吧。

  

用Chrome抓包,分析一下网页的表单,然后用python的各种库发送请求、解析验证码,最后得到结果。

  

工具放在了github上,执行,把,替换成自己的身份证号、密码,或者设置为环境变量即可。

  

结果大概长这样:

  

首先通过Chrome把登录网站、查询的过程抓成har包,方便之后分析。

  

screenshot-chrome

  

整个过程包含:

  

第一次HTTPGET访问网站,得到cookie(即requests里的session)

  

发送一次HTTPGET请求验证码

  

screenshot-chrome-captcha

  

发送一次HTTPPOST把用户名、密码、验证码发送到网站

  

screenshot-chrome-login

  

成功登陆后,发送一次HTTPPOST点击”我接受”的按钮

  

screenshot-chrome-accept

  

进入后续的页面,再发送一次HTTPGET点击”我的申报信息”的按钮

  

screenshot-chrome-myinfo

  

这个过程本身很简单,这里只记录几个要注意的点:

  

用户名是经过处理的,具体是md5.js里这个函数,把字符串作为hex值然后算md5就可以了;

  

密码是明文,通过HTTP发送的,政府的网站无力吐槽。。。

  

通过解析验证码不一定每次都成功,如果失败,可以再试一次,之后可以在这个脚本的基础上加一个retry

  

用解析网页,发现这里面table的格式实现是——太不规则了。目前只能hardcode来得到最后的结果。所以如果网页稍微有点变化,这个脚本可能就需要更新。

  

这个网站开放时间不是全天,而是8:00至22:00。?而22:00至次日8:00是打不开的。。。

  

然后把这个脚本设个crontask定期跑一下,结果通过邮件发送给自己,就不再需要自己去网站上check啦!

  

最后,附上github的code:?

免责声明:本站部分内容和图片转载自互联网,该文观点仅代表原作者本人,文章内容仅供参考,不构成建议,也不代表本站赞同其观点,请读者仅作参考。

相关推荐

推荐内容

版权声明:本站部分内容和图片源于互联网,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。转载文章版权属于原作者所有,若有权属异议及违法违规内容请联系我们删稿,站务联系QQ:29380611。
推荐阅读