比如这个页面: http://ec.iot.10086.cn
可以看到页面中的JS有这样一段
var modulus = "00a119263befc1e7fa0d58bbff5d0b9a7bdeb6d37032b02130b1ef5896760cd6bfebf555e77cf7546d76bc07c02343863b37690b304a5f662784964d9ab9bd434eb0fe3e75845635b924d5a3aa675b0c0024cd86146612d7a4618e5b79b5a7aa9be9cfe5545b73fce5faa287efcca3e01ab3411b29886f057cd1babb5f522cc781"; var exponent = "010001"; setMaxDigits(131); var key = new RSAKeyPair(exponent, '', modulus); password = encryptedString(key, password); $('#password').val(password); $('#loginButtonID').attr("disabled", true); return true;
很显然这个密码是用RSA算法加密之后再提交表单的。
而且貌似用的是这个开源的JS库:http://www.ohdave.com/rsa/
想用python模拟这个登录过程,但是不会模拟这个JS,如何使用python实现这段JS实现的算法呢?也就是讲明文密码进行加密后提交。
pyv8 试试,pyv8对js的解析兼容可能不好,要是不行你可以换个思路去模拟登录。先用python调用浏览器,浏览器可以很好的解析js 登录之后拿到cookie 然后在回到urllib2 等库 继续进行你要的操作,至于python调用浏览器登录 方案比较多 selenium 、phantomjs......phantomjs 是一个基于webkit的浏览器接口,python可以很方便的调用 ######不是很懂JS,看这个JS应该是在用RSA算法去加密,我在想如果能用python同样按照这个算法加密密码之后再post应该就可以搞定,就是不知道怎么去模拟。######刚才回复没有成功。现在遇到和楼主当年一样的问题,请问方面楼主如何解决的这个问题?还请指教,多谢######没解决,用python代码实在难以写这个类库,这个js代码目前我还读不懂。我放弃当时这个方案了。你非要硬着头皮搞下去的话,可以考虑phantomjs的方案,让浏览器帮你执行这个js
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。