Не происходит пагинация в Python, Scrapy. Почему?
Есть код:
import scrapy
class ExampleSpider(scrapy.Spider):
name = "card_json"
allowed_domains = ["apple-market.ru"]
count = 1
while count <= 10:
start_urls = [f"https://apple-market.ru/iphone/?page={count}"]
def parse(self, response):
# Извлекаем все карточки товаров из списка
heads = response.xpath('//ul[@class="catalog-page__list"]/li')
for head in heads:
product_link = head.xpath('.//div[@class="product__preview"]/a/@href').get()
# Генерируем полный URL для товара
full_product_link = response.urljoin(product_link)
# Отправляем запрос на страницу товара
yield scrapy.Request(full_product_link, callback=self.parse_product)
def parse_product(self, response):
# Извлекаем данные о товаре более подробно
product_data = {
'name': response.xpath('.//h1[@class="product-review__info-title"]/text()').get().strip(),
'price': response.xpath('//div[@class="product-review__buy-price"]/text()').get().strip(),
'photo': response.xpath('.//img[@itemprop="contentUrl"]/@src').get(),
'description': []
}
# Извлекаем каждый элемент описания и добавляем его в список.
description_elements = response.xpath(
'//tbody[@class="product-review__characteristics-list-container"]/tr')
for element in description_elements:
key = element.xpath('.//td[@class="product-review__characteristics-label"]/text()').get()
value = element.xpath('.//td[@class="product-review__characteristics-value"]/text()').get()
text = key + ': ' + value
if text:
product_data['description'].append(text.strip())
yield product_data
count += 1
Данные собираются только с одной страницы не проходя по нужному количеству страниц. Если кто знает причину подскажите почему так происходит?