Python - envio de formulário da Web
Muitas vezes, a interação com uma página da web necessita que alguns dados sejam enviados ao servidor por meio dos formulários presentes na página html. Esses formulários da web são normalmente usados para processos como registrar uma nova conta ou fornecer algumas informações como nome ou número do rolo para recuperar o resultado de um exame. orequests módulo lida com isso normalmente usando o método POST com os parâmetros necessários.
Exemplo
No exemplo abaixo, usamos o formulário de inscrição de um site fornecendo o valor de ID de usuário e senha. Após o envio dos valores imprimimos a resposta.
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()
Quando executamos o programa acima, obtemos a seguinte saída -
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 >
.....................
.....................