web-scraping - 如何从导入的表中选择特定列?
问题描述
我在 Google 表格中使用以下公式来提取一些财务数据:
=TRANSPOSE(IMPORTHTML("https://finance.yahoo.com/quote/MSFT/key-statistics?p=MSFT,"table",4))
结果IMPORTHTML
是
Forward Annual Dividend Rate 4 2.04
Forward Annual Dividend Yield 4 1.11%
Trailing Annual Dividend Rate 3 1.94
Trailing Annual Dividend Yield 3 1.05%
5 Year Average Dividend Yield 4 2.02
Payout Ratio 4 32.93%
Dividend Date 3 Mar 11, 2020
Ex-Dividend Date 4 Feb 18, 2020
Last Split Factor 2 2:1
Last Split Date 3 Feb 17, 2003
我是TRANSPOSING
为查询准备数据的结果:
Forward Annual Dividend Rate 4 Forward Annual Dividend Yield 4 Trailing Annual Dividend Rate 3 ...
2.04 1.11% 1.94 ...
我需要的是Ex-Dividend Date 4
列的值(所以:Feb 18, 2020
)(后来还有其他列,所以我正在寻找一个通用的解决方案)。我尝试了多种方法(见下文,但都导致#VALUE!
错误:
=QUERY(TRANSPOSE(IMPORTHTML("https://finance.yahoo.com/quote/MSFT/key-statistics?p=MSFT","table",4)), "SELECT * LIMIT 2 OFFSET 1 WHERE COL=""Ex-Dividend Date 4"")")
=QUERY(TRANSPOSE(IMPORTHTML("https://finance.yahoo.com/quote/MSFT/key-statistics?p=MSFT","table",4)), "SELECT [Ex-Dividend Date 4] LIMIT 2 OFFSET 1")
如何正确查询此表?
解决方案
尝试:
=INDEX(IMPORTHTML("https://finance.yahoo.com/quote/MSFT/key-statistics?p=MSFT",
"table", 4), 8, 2)
或已格式化:
=TEXT(INDEX(IMPORTHTML("https://finance.yahoo.com/quote/MSFT/key-statistics?p=MSFT",
"table", 4), 8, 2), "mm/dd/yyyy")
在QUERY
:
=QUERY(IMPORTHTML("https://finance.yahoo.com/quote/MSFT/key-statistics?p=MSFT",
"table", 4), "select Col2 where Col1 contains 'Ex-Dividend Date 4'", 0)
推荐阅读
- python - Python - 远程启动项目时获取当前用户文件夹
- css - 如何为多行文本的每一行显示图像?
- android - 如果 uri 已知,则请求 uri 读取权限
- python - Python Web-Scraping Daily + 电子邮件?
- php - 如何通过php将数据发送到另一台计算机?
- couchbase - couchbase N1ql 查询选择非分组字段
- youtube-data-api - YouTube 数据 API 配额扩展应用程序 - 验证码是否损坏?
- typescript - 无法获取未定义或空引用的属性“消息”
- javascript - 带有点符号的 MongoDB find() 不起作用
- python - GraphRbacManagementClient.applications.create() 返回访问令牌丢失或格式错误