una tutorial script scraping pagina medium extraer datos python cookies login mechanize webautomation

tutorial - Cómo iniciar sesión en un sitio web con python y mecanizar



web scraping python beautifulsoup tutorial (1)

¿Por qué no utilizar una instancia del navegador para facilitar la navegación? Mechanize también tiene la capacidad de seleccionar formularios particulares (por ejemplo, nr = 0 seleccionará el primer formulario en la página)

browser = mechanize.Browser() browser.open(YOUR URL) browser.select_form(nr = 0) browser.form[''username''] = USERNAME browser.form[''password''] = PASSWORD browser.submit()

Estoy intentando iniciar sesión en el sitio web http://www.magickartenmarkt.de y analizar un poco en el área de miembros ( https://www.magickartenmarkt.de/?mainPage=showWants ). Vi otros ejemplos para esto, pero no entiendo por qué mis enfoques no funcionaron. Identifiqué los formularios correctos para el primer enfoque, pero no está claro si funcionó. En el segundo enfoque, la página de retiring me muestra que no tengo acceso al área de miembros.

Me alegraría por cualquier ayuda.

import urllib2 import cookielib import urllib import requests import mechanize from mechanize._opener import urlopen from mechanize._form import ParseResponse USERNAME = ''Test'' PASSWORD = ''bla123'' URL = "http://www.magickartenmarkt.de" # first approach request = mechanize.Request(URL) response = mechanize.urlopen(request) forms = mechanize.ParseResponse(response, backwards_compat=False) # I don''t want to close?! #response.close() # Username and Password are stored in this form form = forms[1] form["username"] = USERNAME form["userPassword"] = PASSWORD #proof entering data has worked user = form["username"] # a string, NOT a Control instance print user pw = form["userPassword"] # a string, NOT a Control instance print pw #is this the page where I will redirected after login? print urlopen(form.click()).read () #second approach cj = cookielib.CookieJar() opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj)) login_data = urllib.urlencode({''username'' : USERNAME, ''userPassword'': PASSWORD}) #login response_web = opener.open(URL, login_data) #did it work? for me not.... resp = opener.open(''https://www.magickartenmarkt.de/?mainPage=showWants'') print resp.read()