soy nuevo en scrapy y decidí probarlo debido a buenas críticas en línea. Estoy intentando iniciar sesión en un sitio web con scrapy. He iniciado sesión exitosamente con una combinación de selenio y mecanizado al recopilar las cookies necesarias con selenio y agregarlas al mecanizado. Ahora estoy tratando de hacer algo similar con scrapy y selenio, pero no puedo hacer nada para que funcione. Realmente no puedo decir si algo funciona o no. Alguien puede ayudarme por favor. Debajo está lo que comencé. Puede que ni siquiera necesite transferir las cookies con scrapy, pero no puedo decir si la cosa realmente inicia sesión o no. Gracias autenticación scrapy inicio de sesión con cookies
from scrapy.spider import BaseSpider
from scrapy.http import Response,FormRequest,Request
from scrapy.selector import HtmlXPathSelector
from selenium import webdriver
class MySpider(BaseSpider):
name = 'MySpider'
start_urls = ['http://my_domain.com/']
def get_cookies(self):
driver = webdriver.Firefox()
driver.implicitly_wait(30)
base_url = "http://www.my_domain.com/"
driver.get(base_url)
driver.find_element_by_name("USER").clear()
driver.find_element_by_name("USER").send_keys("my_username")
driver.find_element_by_name("PASSWORD").clear()
driver.find_element_by_name("PASSWORD").send_keys("my_password")
driver.find_element_by_name("submit").click()
cookies = driver.get_cookies()
driver.close()
return cookies
def parse(self, response,my_cookies=get_cookies):
return Request(url="http://my_domain.com/",
cookies=my_cookies,
callback=self.login)
def login(self,response):
return [FormRequest.from_response(response,
formname='login_form',
formdata={'USER': 'my_username', 'PASSWORD': 'my_password'},
callback=self.after_login)]
def after_login(self, response):
hxs = HtmlXPathSelector(response)
print hxs.select('/html/head/title').extract()
Después de solucionar los problemas que anotó, ¡pude iniciar sesión correctamente! Nota: las cookies que devolvió el selenio fueron una lista de diccionarios que tuvieron que cambiarse a un solo diccionario. Muchas gracias por la ayuda. – JonDog
lo siento, soy nuevo en stackoverflow. Me cansé de votar pero dice que necesito 15 reputación antes de poder votar. No veo otra forma de marcar como respondida tampoco .. ACTUALIZACIÓN - Bien, hice clic en la marca de verificación. Creo que es eso. – JonDog
@ JohnDog ... podría publicar cómo se manejó la conversión de cookies de una forma a la otra – Amistad