Вы уверены, что запятые?Я думаю, что у вас есть проблемы с тире здесь.Попробуйте что-то вроде этого:
def parse(self, response):
def strip_second(sel, xpath):
return sum([int(x.strip().replace(',', '')) for x in sel.xpath(xpath).extract() if u'-' not in x])
def strip_first(sel, css):
return sel.css(css).get('').strip()
rows = response.css('table.pop-grid tbody tr')
for row in rows:
td = row.css('td')[0]
yield {
'name': strip_first(td, 'span.t206-pop-title::text'),
'variety': strip_first(td, 'span.variety::text'),
'auth': strip_second(row, 'td[3]//text()'),
'psa1': strip_second(row, 'td[4]//text()'),
'psa1.5': strip_second(row, 'td[5]//text()'),
'psa2': strip_second(row, 'td[6]//text()'),
'psa3': strip_second(row, 'td[7]//text()'),
'psa4': strip_second(row, 'td[8]//text()'),
'psa5': strip_second(row, 'td[9]//text()'),
'psa6': strip_second(row, 'td[10]//text()'),
'psa7': strip_second(row, 'td[11]//text()'),
'psa8': strip_second(row, 'td[12]//text()'),
'psa9': strip_second(row, 'td[13]//text()'),
'psa10': strip_second(row, 'td[14]//text()'),
}
Пример вывода будет:
{'psa1.5': [u'0', u'0'], 'auth': [u'2'], 'psa10': [u'0'], 'psa9': [u'0', u'0'], 'psa8': [u'0', u'0', u'0'], 'name': u'Wheat, Zack', 'variety': '', 'psa4': [u'0', u'0', u'0'], 'psa5': [u'0', u'1', u'0'], 'psa6': [u'0', u'0', u'0'], 'psa7': [u'0', u'0', u'0'], 'psa1': [u'0', u'0'], 'psa2': [u'0', u'0', u'0'], 'psa3': [u'0', u'0', u'0']}