机械化javascript解析器进行手动处理

时间:2015-02-20 06:55:23

标签: javascript python-2.7 mechanize-python jython-2.5

我正在尝试使用mechanize登录网站。以下是有关提交的JavaScript操作。我可以通过机械化来破译它所做的和实施的事情。人们一直在建议我,我可以找出javascript的功能,并尝试复制它,我不知道如下。

 function defaultSubmit(a){LoginSubmit("Submit",a);return false}function LoginSubmit(c,d){if(d&&freezeButton){var b=document.getElementById(d);freezeButton(b)}aggSubmitSignIn();var a=document.forms.Login;if(a!=null){a.elements.IDButton.value=c;if(this.submitted){alert("The request is currently being processed");return false}else{this.submitted=true;a.submit()}}return false}function aggSubmitSignIn(){var a=document.forms;var e=a.Login;if(e!=null){var d=a.frmSignIn;if(d!=null){var c=d.elements;for(var b=0;b<c.length;b++){if(c[b]!=null&&c[b].name.indexOf("IDToken")==0){e[c[b].name].value=c[b].value}}}}}function onClickRememberMeCheckBox(c,b,a){checkboxDiveObj=document.getElementById(c);checkdBoxObj=document.getElementById(c+"_CheckBox_"+b);checkBoxValueObj=document.getElementById(c+"_Value");if(checkdBoxObj!=null){if(a){if(checkdBoxObj.className=="checkbox_checked"){checkdBoxObj.className="checkbox";checkBoxValueObj.value="FALSE"}else{checkdBoxObj.className="checkbox_checked";checkBoxValueObj.value=b}}else{checkdBoxObj.className="checkbox_checked";checkBoxValueObj.value=b}}else{checkBoxValueObj.value="FALSE"}child=checkboxDiveObj.getElementsByTagName("a");for(i=0;i<child.length;i++){childObj=child[i];elementId=childObj.getAttribute("id");if(elementId.indexOf("_CheckBox_")>-1&&elementId.indexOf(b)<=0){childObj.className="checkbox"}}};

1 个答案:

答案 0 :(得分:0)

由于机械化不是一个javascript引擎,你无法做到这一点。改用硒。

http://selenium-python.readthedocs.org/en/latest/getting-started.html