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

Mechanize javascript resolver for manual processing

本文关键字:处理 机械化 javascript      更新时间:2024-01-29

我正在尝试使用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"}}};

由于mechanize不是一个javascript引擎,您将无法做到这一点。用硒代替。

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