Я пытаюсь понять, почему мой LinkExtractor
не работает и когда он фактически работает в цикле сканирования?
Эта страница, которую я сканирую.
- На каждой странице 25 записей, и их ссылки анализируются в
parse_page
- Затем каждая просканированная ссылка анализируется в
parse_item
Этот скрипт сканирует первую страницу и элементы в ней без каких-либо проблем.Проблема в том, что это не следует за https://www.yenibiris.com/is-ilanlari?q=yazilim&sayfa=2 (sayfa означает страницу на турецком языке) и другие следующие страницы.
Я думаю, что мои Rule
и LinkExtractor
верны, потому что когда япытался разрешить все ссылки, он тоже не работал.
Мои вопросы;
- Когда
LinkExtractors
должны работать в этомсценарий и почему они не работают? - Как я могу заставить паука переходить на следующие страницы, разбирать страницы и разбирать элементы в них с помощью
LinkExtractors
? - Как я могу реализовать
parse_page
с LinkExtractor
?
Это соответствующие части моего паука.
class YenibirisSpider(CrawlSpider):
name = 'yenibirisspider'
rules = (
Rule(LinkExtractor(allow=(r'.*&sayfa=\d+',)),
callback='parse_page',
follow=True),
)
def __init__(self):
super().__init__()
self.allowed_domains = ['yenibiris.com']
self.start_urls = [
'https://www.yenibiris.com/is-ilanlari?q=yazilim',
]
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(
url=url,
method='GET',
callback=self.parse_page
)
def parse_page(self, response):
items = response.css('div.listViewRowsContainer div div div.jobTitleLnk a::attr(href)').getall()
for item in items:
yield scrapy.Request(
url=item,
method='GET',
callback=self.parse_items
)
def parse_items(self, response):
# crawling the item without any problem here
yield item