Estoy raspando un sitio que utiliza una forma oculta como medio de contramedida contra exactamente lo que estoy tratando de hacer. Este formulario:¿Cómo establecer el valor de forma oculta en Mechanize/Python?
<input style="width: 2px; height: 25px" type="hidden" size="1" name="TestJavaScript" />
es el culpable. La forma espera que el valor de esta entrada se establece en "OK" por algo de JavaScript que se ejecuta más adelante en la línea:
function doSignOn() {
window.document.tether.method = "POST";
window.document.tether.action = "https://missionlink.missionfcu.org/MFCU/login.aspx";
window.document.tether.TestJavaScript.value = "OK";
if (window.document.tether.user.value.length < 1) {
alert("Please enter your Member Number.");
return;
}
if (window.document.tether.PIN.value.length < 1) {
alert("Please enter your Password.");
return;
}
// If we're in the service interruption or notice window, put up an alert.
if (now <= interruption_end) {
if (now >= notice_begin) {
alert(prewarn_alert+'\n\nThank you.');
}
}
window.document.tether.submit();
}
inteligente. Estoy utilizando mecanizar para raspar la página, ¿cómo puedo establecer el valor de este elemento del formulario? Al imprimir el objeto form
en Python, esto es lo que parece:
<tether POST https://missionlink.missionfcu.org/MFCU/login.aspx application/x-www-form-urlencoded
<TextControl(user=)>
<PasswordControl(PIN=)>
<HiddenControl(TestJavaScript=) (readonly)>
<SelectControl(signonDest=[*My Default Destination, Accounts.Activity, Accounts.Summary, Transfers.AddTransfer, SelfService.SelfService])>
>
Como se muestra como "sólo lectura", no puedo modificarlo, de lo contrario se produce una excepción. Sin duda hay una solución, ¿verdad? ¿Algunas ideas?