【问题标题】:How to scrape HTML table into google sheets如何将 HTML 表格抓取到谷歌表格中
【发布时间】:2020-09-19 11:45:13
【问题描述】:

我想从雅虎财经等网站提取远期股息并将其插入 Google 表格。

示例 1: 对于股票代码 AAPL:https://finance.yahoo.com/quote/AAPL?p=AAPL 我希望 Google Sheet 字段返回:0.82

示例 2: 对于相同的符号:https://www.streetinsider.com/dividend_history.php?q=aapl 我希望它从表中返回 0.82 的金额。

这可能吗?

【问题讨论】:

  • “这可能吗?” - 是的,但它会涉及很多步骤,而且这个问题可能会因为过于宽泛而被关闭。你将如何运行这个脚本,确切地说?我想 Chrome 扩展程序会起作用。
  • 如果您想在页内脚本中获取表格单元格的数值,这很简单:var value = parseFloat( document.querySelector( 'table#tableId > tbody > tr:nth-child(123) > td:nth-child(456)' ).textContent )
  • 广泛性来自您将使用的技术,例如selenium (java, c#, javascript),一个客户端,例如new HttpClient()... 或者你会像 Dai 所说的那样使用 chrome 扩展(javascript)。这是可能的,不是那么难.. 但这真的归结为你有什么经验和更舒服。
  • 我正在使用 Chrome 网络浏览器浏览 Google 表格。我发现无法提取该值。 “var value”需要指向其中一个链接才能工作。前段时间,我在使用: =IMPORTXML("old.nasdaq.com/symbol/"&B2&"/…*[@id='quotes_content_left_dividendhistoryGrid_CashAmount_0']") 但该网站不再工作了。

标签: html web-scraping google-sheets


【解决方案1】:

既然您提到要使用内置的IMPORT* 函数,我将从这个角度回答。

与大多数基于表格的抓取一样,它取决于网站。您给出的两个站点的行为非常不同。让我们分别检查它们:

1:雅虎财经 - 可能

我们查看源代码,发现 0.82 位于表中。这让我们可以使用IMPORTHTML:

=INDEX(
    SPLIT(
        VLOOKUP(
            "Forward Dividend & Yield",
            IMPORTHTML("https://finance.yahoo.com/quote/AAPL?p=AAPL", "table", 2),
            2,
        ),
        " "
    ),
    1
)
  1. 导入表数据
  2. 获取股息行
  3. 提取股息收益率值。

2:Street Insider - 不可能

你可能会想,既然 View Source 让我们在浏览器中看到表格,我们应该可以再次使用IMPORTHTML()。可悲的是,情况并非如此。服务器端似乎检测到您没有使用浏览器访问.php,它会显示一个空白页面。 Google 表格使用与您自己的浏览器不同的用户代理。

如果您需要使用 IMPORT* 函数,我唯一可以推荐的就是您找到一个不同的站点来提取数据。

【讨论】:

  • 你是个天才!!!你不知道这对我有多大帮助!我只是希望一些公司为你的技能支付高价!你应得的。
  • 现在它不再工作了......它显示#N/A。你知道这是为什么吗?它只工作了 1 天......
  • @Tommy 不知道。还在为我工作。您可以将鼠标悬停在 #N/A 上以查看问题所在。
  • 错误在 VLOOKUP 评估中未找到值“远期股息和收益率”。不知道这是什么意思
  • @Tommy 这意味着导入的任何表都没有第一列中的值。只是IMPORTHTML 给你任何数据吗?可能您必须查找不同的值和索引才能获得正确的值。网页抓取总是不稳定的业务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多