【问题标题】:importxml function in GooglesheetGoogle Sheet 中的 importxml 函数
【发布时间】:2020-12-04 22:03:57
【问题描述】:

首先,我完全不称职,我为完成这项工作而进行的长达数小时的尝试都没有结果。所以,拜托,有人可以帮助我。

我有

table id="..........." tablesorter class="........"

它们位于同一行代码广告中,我可以一直抓取到第一个元素。对我来说,抓住第二个很重要。我正在尝试不同的方式,但什么都没有

investing

在图片中,在左侧突出显示的部分中,有下拉菜单,可以选择不同的美国市场(纳斯达克、道琼斯、 标准普尔 500 等)。当我选择道琼斯以外的市场时,页面的 URL 始终保持不变,而我在右侧突出显示的部分发生了变化(tablesorter class= "............")。 在我的工作表中,我已经这样做了,但它不能让我抓取不同的市场(只有您在打开网页时看到的默认表格)

spreadsheet

【问题讨论】:

  • 分享您的工作表副本以及所需结果的示例
  • 当您更改所选市场时,它会静默调用(不更改 URL)到 it.investing.com/equities/… - 最后一部分 index_id 对应于 HTML option 元素中的 id 属性,所以 20例如,纳斯达克 100 指数。该 URL 返回的内容在我看来就像没有样式的 HTML 表,然后它可能会嵌入到页面中,但您可以直接抓取响应。您可以查看 Chrome 开发者工具中的网络选项卡,了解幕后调用了哪些 URL。

标签: google-sheets google-sheets-formula


【解决方案1】:

您的主要问题是IMPORTXML 只能从网站的静态内容中检索信息。因此,该函数无法检索任何动态插入的内容。

在您的情况下,您可以通过访问网站 https://it.investing.com/equities/americas 然后禁用其上的 JavaScript 来检查哪些内容不是静态的。如果您使用的是 Chrome,请关注this guide

由于 Javascript 会向网站添加动态内容,当您禁用它时,您会发现随着下拉菜单更改的信息实际上并没有改变,这意味着它是动态插入的,因此无法通过 @ 访问987654327@。我在下面附上了一张图片。

作为一种解决方法,您需要使用其他网络抓取技术。

【讨论】:

  • 谢谢@Mateo Randwolf。对于其他抓取技术,您的意思是使用编程语言?我可以使用 Python,但我将无法直接访问电子表格上的数据。可以用 Google App Script 解决吗??
  • @MattPi 的答案是一个很好的有效解决方法,可以获取您正在寻找的数据并为其获取正确的 URL 并使用 IMPORTHTML
猜你喜欢
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-17
相关资源
最近更新 更多