Допустим, вы хотите сканировать паука .... и существует с тем же классом другой текст ... как я могу сказать, что каждый раз, когда существует один и тот же элемент, создается новый столбец, такой как 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