Я пытаюсь реализовать в своем коде какой-то экспортер предметов.Мой основной код прямо сейчас, чтобы привести si.com в среднее значение, как пример.Результаты представлены в одной длинной строке, и я хотел бы изменить вывод, так как он хранится в файле .csv, чтобы вместо этого поместить его в столбец.Ниже я включаю паука, и экспортер предметов, который я использую, является просто основным, найденным здесь. То, что я действительно хочу, это взять каждый элемент и сохранить результаты в столбцах рядом с каждымдругой вместо одной длинной строки со всеми тремя результатами подряд.
from scrapy.spider import BaseSpider
from scrapy.selector import HtmlXPathSelector
from scrapy.contrib.exporter import XmlItemExporter
from mlb1.items import MlbItem
class MLBSpider(BaseSpider):
name = "si.com"
allowed_domains = ["si.com"]
start_urls = [
http://sportsillustrated.cnn.com/baseball/mlb/stats/2011/batting/ml_0_byBATTING_AVG.html"
]
def parse(self, response):
hxs = HtmlXPathSelector(response)
sites = hxs.select('//div[@class="cnnSASD_sport-mlb"]/div[@class="cnnSASD_page-leadersPlayersExpandedStats"]/div[@class="cnnStatsContent"]')
items = []
for site in sites:
item = MlbItem()
item['name'] = site.select('//table[@class="cnnSASD_first"]/*/td[@class="cnnCol1"]//text()').extract()
item['team'] = site.select('//table[@class="cnnSASD_first"]/*/td[@class="cnnCol2"]//text()').extract()
item['batave'] = site.select('//table[@class="cnnSASD_first"]/*/td[@class="cnnColHighlight"]//text()').extract()
items.append(item)
return items
Я все еще очень новичок в Python Coding, так что документация по scrapy не очень помогает.Когда я пытаюсь запустить код, я получаю сообщение об ошибке: «ImportError: Ошибка загрузки объекта« mlb1.pipelines.XmlExportPipeline »: невозможно импортировать сигналы имен».Буду очень признателен за любую помощь.