2016-04-28 5 views
0

私は単純なログインとログインの後の別のページを持っています。一度私はログインを完了する(私はユーザーセッションを得ることができます)。 あなたが定義します。私は別のページを要求した場合、セッションはサンプル実装どのようにログインセッションが維持されているか

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

はあなたsettings.pyファイルに

UPDを

COOKIES_ENABLED = True 

を持っていることを確認してください

を行っていますparse1メソッドをコード内で2回繰り返します。

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'メソッドを2回定義します。 –

+0

これは 'COOKIES_DEBUG = True'のデバッグに役立ちます。 –

関連する問題