Scrapy: проблема соскоба UP C номер - PullRequest
0 голосов
/ 11 февраля 2020

У меня проблемы с извлечением кода UP C на веб-странице BestBuy. Когда я извлекал код UP C, я заметил, что UP C будет перемещать строки на каждой странице продукта, что заставит меня извлечь неправильные данные.

Вот примеры перемещения UP C строк на веб-странице продукта.

Продукт 1: Показывает селектор CCS .row:nth-child(8) .col-xs-6.v-fw-regular

Продукт 2: Показывает селектор CCS .row:nth-child(12) .col-xs-6.v-fw-regular

Вот два веб-сайта для проверки.

https://www.bestbuy.com/site/targus-safeport-protective-case-for-apple-9-7-ipad-5th-gen--6th-gen-and-9-7-ipad-pro-pink/6257900.p?skuId=6257900

https://www.bestbuy.com/site/belkin-dual-band-ac-gigabit-router-black/4070013.p?skuId=4070013

Это мой код.

import scrapy
from ..item import QuotestutorialItem


class QuotesSpider(scrapy.Spider):
    name = 'bestbuy'
    start_urls = ['https://www.bestbuy.com/site/promo/newly-discounted-outlet-products']

    def parse(self, response):
        products = response.css('div.sku-title')

        for product in products:
            item = QuotestutorialItem()
            item['title'] = product.css('div.sku-title a::text').extract()

            another_page = product.css('div.sku-title a::attr(href)').get()
            if another_page:
                yield response.follow(another_page, callback=self.parse_price, meta={'item': item})
            else:
                yield item

    def parse_price(self, product):
        item = product.meta['item']
        item['price'] = product.css('.priceView-layout-large .priceView-customer-price span::text').extract()[1]
        item['upc'] = product.css('.row:nth-child(10) .col-xs-6.v-fw-regular::text').extract()
        yield item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...