【问题标题】:Unable to scrape the data from website using IMPORTHTML or IMPORTXML in Google Sheet无法在 Google 表格中使用 IMPORTHTML 或 IMPORTXML 从网站上抓取数据
【发布时间】:2021-08-20 16:44:58
【问题描述】:

我想使用 Google 表格从网站上抓取数据,如上面的屏幕截图所示(红色框中的数据)。我尝试使用IMPORTHTMLIMPORTXML,但两者都不起作用(输出为空)。

这是我的 Google 表格:

https://docs.google.com/spreadsheets/d/1ELo3iA4RmhUuFq7YEfsCVt2iuURFxc1Crdng7rLovTo/edit#gid=0

我不确定是否可以使用IMPORTHTMLIMPORTXML 从该网站(https://stockrow.com/AAPL) 抓取数据。或者是否可以使用 Google Apps 脚本来实现?

【问题讨论】:

  • 需要考虑的事项:也许该网站不希望您抓取他们的数据,并且正在积极阻止您这样做。许多提供财务数据的网站都有明确禁止此类抓取的服务条款,因为获取数据需要花钱...
  • 如果内容是动态添加的(通过使用Javascript),则无法使用Google表格内置函数导入。请参见此处:webapps.stackexchange.com/questions/115664/…,我没有找到任何本网站的其他方式。

标签: html google-apps-script web-scraping google-sheets google-sheets-formula


【解决方案1】:

对于这类网站,Sheets 和 Apps Script 无法抓取它们,因为内容是动态生成的,正如前面提到的 cmets。

当有人在浏览这类网站时,他们中的大多数确实在 Python 中使用 Selenium。基本上,它所做的是执行浏览器自动化。

我知道这对您来说可能是无用的信息,因为 Google App Engine 不是标签,但对于可能遇到此问题并且非常熟悉 Python 中的 Selenium 的其他所有人,这可能会有所帮助。

在 Google App Engine 中运行 Selenium 可能是一个解决方案,但如果您不想花时间学习和理解 Python 以及 Google App Engine,我建议您避开这一点。可以说明问题的参考文献列在底部。

替代方案:

  • 在不花费太多时间的情况下解决该问题的最佳方法是找到一个替代网站,该网站的内容不是由 JavaScript 生成,并且可以为您提供相同的数据。
  • 检查站点是否是 JS 生成的一种方法是检查页面源。如果您要抓取的内容在源代码中,则该文本不是 JavaScript 生成的。

参考:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多