Obtener Cookie de Twitter con Python + Selenium

  • Autor Autor predefinelas
  • Fecha de inicio Fecha de inicio
predefinelas

predefinelas

Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Hola Betas, reciban un cordial saludo.

Estoy desarrollando un par de scripts para obtener las cookies de una cuenta en twitter y reutilizarla para hacer automatizaciones con Selenium.

¿cómo se ejecuta?
Desde una shell o consola de comandos
Bash:
python get_cookie_from_twitter.py --account=cuentaDeTwitter

Abrir selenium con las cookies
Bash:
python open_twitter_with_cookie.py --account=cuentaDeTwitter

requirements.txt

Insertar CODE, HTML o PHP:
click==8.0.1
pickle5==0.0.11
selenium==3.141.0
urllib3==1.26.6

También deben descargar los driver de Firefox llamado geckodriver

get_cookie_from_twitter.py

Python:
import click
import pickle5 as pickle
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

@click.command()
@click.option(
    "--account",
    prompt="What is your twitter account name? (eg. @example)",
    help="Twitter account name, eg. @example")

@click.option(
    "--password",
    prompt="what is the password?",
    help="Twitter account password",
    hide_input=True,
    confirmation_prompt=True)

@click.option(
    "--cookiesfolder",
    prompt="what is the folder cookies files?",
    help="Cookies folder",
    default='./cookies')

def get_cookie_from_twitter(account, password, cookiesfolder):
    driver = webdriver.Firefox()
    driver.get('https://twitter.com/login?username_or_email=' + account)
    element_present = EC.presence_of_element_located((By.NAME, 'session[password]'))
    WebDriverWait(driver, 10).until(element_present)
    password_element = driver.find_element(by=By.NAME, value="session[password]")
    password_element.send_keys(password)
    button_element = driver.find_elements(by=By.XPATH, value="//div[@role = 'button']")
    button_element[0].click();
    pickle.dump( driver.get_cookies() , open( cookiesfolder + "/" + account + ".pkl","wb"))



if __name__ == '__main__':
    get_cookie_from_twitter()

open_twitter_with_cookie.py

Python:
import click
import pickle5 as pickle
from selenium import webdriver

@click.command()
@click.option(
    "--account",
    prompt="What is your twitter account name? (eg. @example)",
    help="Twitter account name, eg. @example")

@click.option(
    "--cookiesfolder",
    prompt="what is the folder cookies files?",
    help="Cookies folder",
    default='./cookies')
 
def open_twitter_with_cookie(account, cookiesfolder):
    driver = webdriver.Firefox()
    driver.get("https://twitter.com")
    cookies = pickle.load(open(cookiesfolder + "/" + account + ".pkl", "rb"))
    for cookie in cookies:
        driver.add_cookie(cookie)

if __name__ == '__main__':
    open_twitter_with_cookie()
 
Última edición:
Atrás
Arriba