витая КРИТИЧЕСКАЯ: необработанная ошибка в отложенном: - PullRequest
0 голосов
/ 01 октября 2019

Я использую scrapy-splash для сканирования этого веб-сайта, и паук выдает "[twisted] КРИТИЧЕСКИЙ: Необработанная ошибка в отложенном:"

Попробовал все в переполнении стека и других веб-сайтах

Код моего паука

class DarazspidySpider(scrapy.Spider):
    name = 'darazspidy'

    def start_requests(self):
        url = 'https://www.daraz.pk/smartphones/'
        SplashRequest(url=url, callback=self.parse, 
     endpoint='render.html', args={'wait': 0.5})

    def parse(self, response):
        for phone in response.xpath('//div[@class="c5TXIP"]'):
            yield {
            'Name',
            phone.xpath('.//*[contains(concat( " ", @class, " " ), concat( " ", "c16H9d", " " ))]//a').extract(),
            'price',
            phone.xpath('.//*[contains(concat( " ", @class, " " ), concat( " ", "c13VH6", " " ))]').extract(),
        }

1 Ответ

1 голос
/ 02 октября 2019

Вы получаете набор, а не словарь. Можете ли вы попробовать вместо словаря выдать словарь?

Создание вашего набора не удастся, потому что вы не можете добавить списки в набор.

Вместо этого попробуйте что-то вроде этого:

def parse(self, response):
        for phone in response.xpath('//div'):
            yield {
            'Name': phone.xpath('.//*[contains(concat( " ", @class, " " ), concat( " ", "c16H9d", " " ))]//a').extract(),
            'price': phone.xpath('.//*[contains(concat( " ", @class, " " ), concat( " ", "c13VH6", " " ))]').extract(),
        }

Вам, вероятно, также нужно указать свой запрос на всплеск:

yield SplashRequest(url=url, callback=self.parse, 
     endpoint='render.html', args={'wait': 0.5})
...