从 Google Sheet 中的单元格中提取 link 详细信息

Extract link details from cell in Google Sheet

我想知道是否可以在将鼠标悬停在单元格上时从单元格中提取 link 详细信息?

例如Kim Kardashian账号的instagram粉丝如下:

我认为您无法直接通过弹出窗口轻松地从 link 的 social media preview 获取值。

在社交媒体预览中看到的内容嵌入在相关网页 HTML 中的 meta tags 下方,可以通过解析相关 HTTP 响应来删除内容。

解决方案 1

您可以使用 Google Sheet 的 IMPORTXML() 和合适的 XPath,这有助于指向您想要的数据。以下将用作单元格值。

=IMPORTXML([Relevant cell id; Example: A1],"/html/head/meta[14]/@content]")

但是,这确实会产生错误:"Could not fetch url",在我这边,尽管使用了您提供的有效示例 URL。

解决方案 2

您可以使用以下代码和适当的约束来利用 Google sheet bounded Google Apps Script

function fetchContent(url) {
    const htmlResponse = UrlFetchApp.fetch(url).getContentText();
    return Parser.data(htmlResponse).from("<meta content=\"").to("\"").build(); }

相关单元格值为:

=fetchContent([Relevant cell id])

然而,当使用示例URL时,此解决方案也会导致错误:"Exception: Request failed for https://www.instagram.com... returned code 429 ..",暗示从相关IP地址向Instagram发出的HTTP请求过多。请参阅 this SO Q&A regarding IP addresses associated with App script's UrlFetchApp()and this SO Q&A 关于 Instagram 阻止 IP 地址的信息。

理论上,上述解决方案应该适用于其他不屏蔽 IP 地址的网站。

通过 Google Apps 脚本获取内容的特定部分应该很简单,但是对于 Google Sheets 内你可以查看这个 和相关的一个。

如果您需要专门从 Instagram 获取数据,可以查看 Instagram's Graph API