2016-04-28 2 views
0

У меня есть простой логин и другая страница за именем входа. Как только я завершу логин (я могу получить сеанс пользователя). Если я запросить другую страницу сеанс ушелкак сеанс входа в систему в режиме scrapy

Образец реализации

from scrapy.item import Item, Field 
from scrapy.http import FormRequest 
from scrapy.spider import Spider 
from scrapy.utils.response import open_in_browser 
class TestSpider(Spider): 
    name = "test" 
    allowed_domains = ["example.com"] 
    start_urls = ["https://example.com/customer/account/login/"] 

    def parse(self, response): 
    token =     response.xpath(".//input[contains(@name,'token')]/@value").extract()[0] 

    yield FormRequest.from_response(
     response, 
     formnumber=1, 
     formxpath=".//*[@id='form-account-login']", 
     formdata={ 
       'token' : token, 
      'LoginForm[email]': 'xxxx', 
      'LoginForm[password]': 'xxxx', 
     }, 
     clickdata={'id': 'customer-account-login'}, 
     callback=self.parse1, 
     ) 

    def parse1(self, response): 
    return scrapy.Request(url="https://example.com/customer/account/list/", callback = self.parse_2, errback=self.error) 

    def parse1(self,response): 
    open_in_browser(response) 
+0

'COOKIES_DEBUG = True' может помочь выявить проблемы. –

ответ

0

Убедитесь, что вы получили

COOKIES_ENABLED = True 

в файле settings.py

UPD: Вы определяете parse1 метод дважды в вашем коде.

def parse1(self, response): 
    return scrapy.Request(url="https://example.com/customer/account/list/", callback = self.parse_2, errback=self.error) 

    def parse1(self,response): 
    open_in_browser(response) 
+0

Я добавил, что строка также по-прежнему я не получаю –

+0

Вы определяете 'parse1' метод дважды в вашем коде. –

+0

ok спасибо, это поможет отладить 'COOKIES_DEBUG = True' –

Смежные вопросы