Quiero hacer clic en un botón con python, la información del formulario se rellena automáticamente en la página web. El código HTML para enviar una solicitud al botón es:
INPUT type="submit" value="Place a Bid">
¿Cómo voy a hacer esto? ¿Es posible hacer clic en el botón con solo urllib o urllib2? ¿O necesitaré usar algo como mecanizar o sarga?
Utilice el formulario de destino y envíe cualquier entrada como datos de publicación como este:
Pitón:
# parse the page HTML with the form to get the form target and any input names and values... (except for a submit and reset button) # You can use XML.dom.minidom or htmlparser # form_target gets parsed into "http://mysite.com/blah.php" # input1_name gets parsed into "in1" # input1_value gets parsed into "abc" form_url = form_target + "?" + input1_name + "=" + input1_value # form_url value is "http://mysite.com/blah.php?in1=abc" # Then open the new URL which is the same as clicking the submit button s = urllib2.urlopen(form_url)
Puedes analizar el HTML con HTMLParser
Y no te olvides de urlencodificar cualquier dato de publicación con:
urllib.urlencode (consulta)
Es posible que desee echar un vistazo a IronWatin – https://github.com/rtyler/IronWatin para completar el formulario y “hacer clic” en el botón con el código.
Usando urllib.urlopen, puede enviar los valores del formulario como el parámetro de datos a la página especificada en la etiqueta del formulario. Pero esto no automatizará su navegador, por lo que primero tendría que obtener los valores de formulario de otra manera.