Python Crawler возвращает один и тот же ответ на любой другой URL-запрос - PullRequest
0 голосов
/ 31 октября 2019

Я создаю очень простой скребок, но я делаю очень глупую ошибку, которую не могу найти.

В методе ответа я получаю одинаковый ответ для любого URL, переданного с использованиемцикл всех продуктов на странице списка продуктов

Я добавляю мой код ниже, пожалуйста, помогите.

def parse(self, response): 
    item = {}
    count = 0
    for single in response.xpath('//div[@class="_3O0U0u"]/div'):
        count+=1
        # print(count)
        item['data_id'] = single.xpath('.//@data-id').extract_first()
        item['price'] = single.xpath('.//div[@class="_1vC4OE"]/text()').extract_first()
        item['url'] = single.xpath('.//div[@class="_1UoZlX"]/a[@class="_31qSD5"]/@href').extract_first()
        if not item['url']:
            item['url'] = single.xpath('.//div[@class="_3liAhj _1R0K0g"]/a[@class="Zhf2z-"]/@href').extract_first()
        #print(item)
        if item['url']:
            yield scrapy.Request('https://www.somewebsite.com' + item['url'], callback = self.get_product_detail, priority = 1, meta={'item': item})
            # break

    next_page = response.xpath('//div[@class="_2zg3yZ"]/nav/a[@class="_3fVaIS"]/span[contains(text(),"Next")]/parent::a/@href').extract_first()
    if next_page:
        next_page =  'https://www.somewebsite.com'+response.xpath('//div[@class="_2zg3yZ"]/nav/a[@class="_3fVaIS"]/span[contains(text(),"Next")]/parent::a/@href').extract_first()
        yield scrapy.Request(next_page, callback=self.parse ,priority=1)

def get_product_detail(self, response):
    dict_item = response.meta['item']
    sku = dict_item['data_id']
    print('dict SKU ======== ', sku)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...