def after_initial_csrf(self, response):
        """
        This method is called *only* if the crawler is started with an
        email and password combination.
        In order to log in, we need a CSRF token from a GET request. This
        method takes the result of a GET request, extracts the CSRF token,
        and uses it to make a login request. The response to this login
        request will be handled by the `after_initial_login` method.
        """
        login_url = (
            URLObject("http://")
            .with_hostname(self.domain)
            .with_port(self.port)
            .with_path(LOGIN_API_PATH)
        )
        credentials = {
            "email": self.login_email,
            "password": self.login_password,
        }
        headers = {
            b"X-CSRFToken": get_csrf_token(response),
        }
        yield scrapy.FormRequest(
            login_url,
            formdata=credentials,
            headers=headers,
            callback=self.after_initial_login,
            errback=self.handle_error
        )