Solución:
Puede utilizar mecanizar:
import mechanize
from bs4 import BeautifulSoup
import urllib2
import cookielib ## http.cookiejar in python3
cj = cookielib.CookieJar()
br = mechanize.Browser()
br.set_cookiejar(cj)
br.open("https://id.arduino.cc/auth/login/")
br.select_form(nr=0)
br.form['username'] = 'username'
br.form['password'] = 'password.'
br.submit()
print br.response().read()
O urllib: inicie sesión en el sitio web utilizando urllib2
Hay una forma más sencilla, desde mi punto de vista, que te lleva ahí sin selenium
o mechanize
u otras herramientas de terceros, aunque sea semi-automatizado.
Básicamente, cuando inicia sesión en un sitio de manera normal, se identifica de una manera única utilizando sus credenciales, y la misma identidad se usa a partir de entonces para todas las demás interacciones, que se almacenan en cookies
y headers
, durante un breve período de tiempo.
Lo que debes hacer es usar el mismo cookies
y headers
cuando realice sus solicitudes http, y estará en.
Para replicar eso, siga estos pasos:
- En su navegador, abra las herramientas de desarrollo
- Vaya al sitio e inicie sesión
-
Después el inicio de sesión, vaya a la pestaña de red y luego actualizar la página
En este punto, debería ver una lista de solicitudes, la principal es el sitio real, y ese será nuestro enfoque, porque contiene los datos con la identidad que podemos usar para que Python y BeautifulSoup la raspen. - Haga clic con el botón derecho en la solicitud del sitio (la de arriba), coloque el cursor sobre
copy
, y luegocopy as
cURLComo esto:
- Luego vaya a este sitio que convierte cURL en solicitudes de Python: https://curl.trillworks.com/
- Tome el código de Python y use el generado
cookies
yheaders
para proceder con el raspado
Puede usar selenio para iniciar sesión y recuperar la fuente de la página, que luego puede pasar a Beautiful Soup para extraer los datos que desee.