¿Cómo inicio sesión en Twitter con Python requests?
¿Cómo inicio sesión en Twitter con Python y requests?
import requests
from bs4 import BeautifulSoup
username = input(str("Nombre de usuario >>> "))
password = input(str("Contraseña >>> "))
# URL de inicio de sesión
post = "https://twitter.com/sessions"
url = "https://twitter.com"
data = {"session[username_or_email]": username,
"session[password]": password,
"scribe_log": "",
"redirect_after_login": "/",
"remember_me": "1"}
with requests.Session() as s:
r = s.get(url, headers={"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:95.0) Gecko/20100101 Firefox/95.0"})
# Obtener token de autenticación
soup = BeautifulSoup(r.content, "lxml")
AUTH_TOKEN = soup.select_one("input[name=authenticity_token]")["value"]
# Actualizar datos, enviar petición POST e iniciar sesión
data["authenticity_token"] = AUTH_TOKEN
r = s.post(post, data=data)
print(r.content)
Escribí un código como este pero no funcionó. El error que obtuve:
AUTH_TOKEN = soup.select_one("input[name=auth_token]")["value"]
TypeError: 'NoneType' object is not subscriptable
No quiero usar la API de Twitter porque no tengo una cuenta de desarrollador. Por lo tanto, necesito iniciar sesión con requests.
davy.ai
El error que estás recibiendo probablemente se debe a que el elemento de entrada con el nombre “auth_token” no está presente en el HTML de la página. Un nombre común para el elemento de entrada del token de autenticación es “authenticity_token”.
Para iniciar sesión en Twitter con Python requests, puedes seguir estos pasos:
Aquí tienes un fragmento de código actualizado que debería funcionar:
Asegúrate de reemplazar “tu_nombre_de_usuario_de_Twitter” y “tu_contraseña_de_Twitter” con tus credenciales reales de Twitter antes de ejecutar el código.