Python: envío de formularios web

A menudo, la interacción con una página web necesita que algunos datos se envíen al servidor a través de los formularios presentes en la página html. Estos formularios web se utilizan normalmente para procesos como registrarse para una nueva cuenta o proporcionar información como el nombre o el número de registro para recuperar el resultado de un examen. losrequests El módulo maneja esto elegantemente usando el método POST con los parámetros requeridos.

Ejemplo

En el siguiente ejemplo, utilizamos el formulario de registro de un sitio web al proporcionar el valor de identificación de usuario y contraseña. Después del envío de los valores imprimimos la respuesta.

import requests
ID_USERNAME = 'signup-user-name'
ID_PASSWORD = 'signup-user-password'
USERNAME = 'username'
PASSWORD = 'yourpassword'
SIGNUP_URL = 'http://codepad.org/login'
def submit_form():
    """Submit a form"""
    payload = {ID_USERNAME : USERNAME, ID_PASSWORD : PASSWORD,}
    resp = requests.get(SIGNUP_URL)
    print "Response to GET request: %s" %resp.content
    resp = requests.post(SIGNUP_URL, payload)
    print "Headers from a POST request response: %s" %resp.headers
#print "HTML Response: %s" %resp.read()
if __name__ == '__main__':
    submit_form()

Cuando ejecutamos el programa anterior, obtenemos el siguiente resultado:

Response to GET request: <!DOCTYPE html>
<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <meta HTTP-EQUIV="Expires" CONTENT="-1">
    <title>Login - codepad</title>
    
    <link href="/main.css" media="screen" rel="stylesheet" type="text/css" />
    <style type="text/css">
    
    </style>
    <script src='https://www.google.com/recaptcha/api.js'></script>
    <script>
       function onRecaptcha(token) {
         document.getElementById("editor-form").submit();
       }
    </script>
</head>
    <body >
	.....................
	.....................