Данные, вероятно, загружаются динамически, поэтому вам придется визуализировать страницу с чем-то вроде Spla sh или Selenium, чтобы ваше CSS выражение работало.
Когда вы go переходите на страницу источник, вы можете видеть, что данные о продукте присутствуют в большом json -файле, поэтому я просто загрузил бы json в виде python словаря и получил оттуда нужные данные:
import scrapy
import json
class LazadaSpider(scrapy.Spider):
name = 'lazada'
allowed_domains = ['lazada.com']
start_urls = ['https://www.lazada.com.my/shop-smart-tvs/']
def parse(self, response):
script = response.xpath(
"//script[starts-with(text(), 'window.pageData')]/text()"
).extract_first()
first = script.index('{')
last = len(script)
products = json.loads(script[first:last])
items = products['mods']['listItems']
for item in items:
name = item['name']
price = item['price']
yield {'name': name,
'price': price}