机械化 javascript 用于手动处理的解析器
Mechanize javascript resolver for manual processing
我正在尝试使用 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
我正在尝试使用 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