Пытаюсь парсить данные с Озона при помощи
Scrapy с
этой страницы. В браузере на странице показывает 36 смартфонов, а у меня возвращаются только первые 4 смартфона.
Почему при парсинге страницы мне не возвращает 36 смартфонов, как это отображается в браузере?
Как мне задать нужное количество возвращаемых значений?
import scrapy
import urllib.parse
API_KEY = 'my_api'
class OzonTopSmartphonesSpider(scrapy.Spider):
name = 'ozon_top_smartphones_spider'
def get_scrapeops_url(self, url):
payload = {'api_key': API_KEY, 'url': url}
proxy_url = "https://proxy.scrapeops.io/v1/?" + urllib.parse.urlencode(payload)
return proxy_url
def start_requests(self):
urls = [
'https://www.ozon.ru/category/smartfony-15502/?sorting=rating',
]
for url in urls:
yield scrapy.Request(url=self.get_scrapeops_url(url), callback=self.parse)
def parse(self, response):
for smartphone in response.xpath('//span[@class="dy9 yd9 dz zd1 tsBodyL k8n"]/span/text()').extract():
print(smartphone)