Сначала я хочу упомянуть, что я видел другие вопросы о переполнении стека, подобные этому, и пытался рекомендовать разрешения, однако каждая итерация повторяет проблемное поведение.
Я пытаюсь извлечь данные с этого сайта https://www.marketwatch.com/investing/stock/aapl/financials, чтобы провести некоторый финансовый анализ, однако дамп в мой CSV-файл всегда пуст.
Я попытался определить проблему в оболочке scrapy, и похоже, что мое "in values" никогда не оценивается как true, но я не уверен, почему, потому что первоначальный response.xpath действительно печатает значения таблицы.
Код ниже. Я ценю любую помощь, спасибо всем!
values = ["Sales/Revenue", "Cost of Goods Sold (COGS) incl. D&A", "Depreciation & Amortization Expense", "Gross Income", "SG&A Expense", "Research & Development", "EBIT after Unusual Expense", "Pretax Income", "Income Tax", "Net Income", "EBITDA"]
for row in response.xpath('//table[@class="crDataTable"]/tbody/tr[not(contains(@class,"thead"))]'):
test = row.xpath('/td[1]//text()').extract()
for i in values:
if i in test:
item['rowTitle'] = row.xpath('/td[1]//text()').extract()
item['year1'] = row.xpath('/td[2]//text()').extract()
item['year2'] = row.xpath('/td[3]//text()').extract()
item['year3'] = row.xpath('/td[4]//text()').extract()
item['year4'] = row.xpath('/td[5]//text()').extract()
item['present'] = row.xpath('/td[6]//text()').extract()
yield item