Python - Scrapy добавляет новые столбцы каждый раз, когда существует один и тот же элемент - PullRequest
0 голосов
/ 31 августа 2018

Допустим, вы хотите сканировать паука .... и существует с тем же классом другой текст ... как я могу сказать, что каждый раз, когда существует один и тот же элемент, создается новый столбец, такой как ProductNr + 1?

Вот код:

import scrapy

class CarbotSpider(scrapy.Spider):
    name = 'CarBot'
    start_urls = [
    'https://www.car.gr/parts/view/13073027-suspension-steering-springs-optimal-germany',
    'https://www.car.gr/parts/view/7877992-suspension-steering-lowering-springs',
    'https://www.car.gr/parts/view/7751931-suspension-steering-regulated-suspension',
    ]

    def parse(self, response):
        self.log('I Just Visited: ' + response.url)
        for content in response.css('div.bgcolor'):
            row = content.css('div.row')
            table1 = row.css('table.table.table-striped.table-condensed')
            item = {
                'CurrentUrl' : response.url,
                'Title' : content.css('span.p_t.title-inside::text').extract(),
                'Price' : row.css('span.p_p::text').extract(),
                'BrandName' : row.css('span[itemprop="brand"] > span[itemprop="name"]::text').extract(),
                'Model' : row.css('li > span[itemprop="model"]::text').extract(),
                'ReleaseDate' : row.css('li > span[itemprop="releaseDate"]::text').extract(),
                'ToDate' : row.css('li[itemprop="isAccessoryOrSparePartFor"]::text').extract(),
                'NumberPage' : row.css('h3.details-header::text')[0].extract(),
                'URL' : row.css('td[itemprop="url"]::text').extract(),
                'Thumpnail' : row.css('img.img-thumbnail::attr(src)').extract(),}
            if row.css('td[itemprop="productID"]'):
                item['ProductNr1'] = row.css('td[itemprop="productID"]::text').extract()
                item['ProductNr2'] = row.css('td[itemprop="productID"]::text')[1].extract()
                item['ProductNr3'] = row.css('td[itemprop="sku"]::text').extract()
            yield item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...