Я пытаюсь сканировать весь сайт с помощью системы аутентификации. Все работает правильно без моего auth func. Когда я использую свой auth func, scrapy login и сканирует только главную страницу. Почему не сканируются все ссылки, определенные в разделе «Правила»?
from scrapy.linkextractors import LinkExtractor
from scrapy.spiders import CrawlSpider, Rule
from scrapy.http import Request, FormRequest
class TSpider(CrawlSpider):
name = 't'
allowed_domains = ['domain.net']
start_urls = ['http:// domain.net/']
login_page = 'http:// domain.net/login.php'
rules = (
Rule(LinkExtractor(), callback='parse_item', follow=True),
)
def start_requests(self):
yield Request(url=self.login_page, callback=self.login, dont_filter=True)
def login(self, response):
return FormRequest.from_response(response,
formdata={'login_username': 'login',
'login_password': 'password'},
callback=self.parse_item)
def parse_item(self, response):
item = {}
item['title'] = response.xpath('//head/title/text()').extract()
item['url'] = response.url
return item