тогда была вызвана функция разбора.

мпредыдущий вопросЯ не был очень конкретным в отношении моей проблемы (соскоб с аутентифицированного сеанса в Scrapy) в надежде вывести решение из более общего ответа. Наверное, мне следовало бы использовать словоcrawling.

Итак, вот мой код:

class MySpider(CrawlSpider):
    name = 'myspider'
    allowed_domains = ['domain.com']
    start_urls = ['http://www.domain.com/login/']

    rules = (
        Rule(SgmlLinkExtractor(allow=r'-\w+.html$'), callback='parse_item', follow=True),
    )

    def parse(self, response):
        hxs = HtmlXPathSelector(response)
        if not "Hi Herman" in response.body:
            return self.login(response)
        else:
            return self.parse_item(response)

    def login(self, response):
        return [FormRequest.from_response(response,
                    formdata={'name': 'herman', 'password': 'password'},
                    callback=self.parse)]


    def parse_item(self, response):
        i['url'] = response.url

        # ... do more things

        return i

Как видите, первая страница, которую я посещаю - это страница входа. Если я еще не аутентифицирован (вparse функция), я называю свой обычайlogin функция, которая отправляет сообщения в форму входа. Тогда, если яя Я хочу продолжить сканирование.

Проблема в том, чтоparse Функция, которую я пытался переопределить, чтобы войти в систему, теперь больше не делает необходимых вызовов, чтобы очистить любые дальнейшие страницы (я предполагаю). И я не уверен, как сохранить сохраненные мной элементы.

Кто-нибудь делал что-то подобное раньше? (Аутентифицировать, затем сканировать, используяCrawlSpider) Любая помощь будет оценена.