xpath - Scrapy If 语句未在 for 循环中求值
问题描述
我想首先提一下,我在 Stack Overflow 上看到了与此类似的其他问题,并尝试了推荐的解决方案,但是,每次迭代都会复制有问题的行为。
我正在尝试从该网站https://www.marketwatch.com/investing/stock/aapl/financials提取数据以进行一些财务分析,但是,我的 csv 文件的转储始终为空。
我试图在 scrapy shell 中找出问题,似乎我的“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
解决方案
推荐阅读
- c# - 当我有一个字符串和一个整数时,如何在运行时将 int 转换为枚举值?
- javascript - Javascript - 无法在 Touchend 事件上获得光标位置
- clojure - 如何通过在 Clojure 中传递其先前执行的结果来重复调用函数
- ios - 点击“添加标签”选项会关闭 UIDocumentInteractionController 突然启动的底层模式视图
- python-3.x - OpenCV 和 Matplotlib 没有在对象检测 Python 脚本上返回边界框
- python - 让机器人指向正确的方向
- docker - Heroku 和 Google Cloud Run 上的 HTTP 请求不一样
- azure - 无法使用我在资源诞生时创建的管理员帐户通过 Azure Synapse Analytics (Azure DW) 创建数据库主密钥
- javascript - 从字符串javascript中提取多个特定字符
- python-3.x - 如何从 Python Cloud Function 触发/调用 Cloud Build