如何使用 importXML 从网站将数据导入我的 Google Sheet

How Do I Import Data Into My Google Sheet from a Website Using importXML

今天在 Google Sheet 中尝试使用 importXML 时,我 运行 遇到了问题。我试图将 USTA 锦标赛页面的标题 header 导入 Google Sheet,但是,这没有用,因为它只是生成了 HTML 的标题正在显示的网页 ('TournamentHome')。下面是GoogleSheet,以及使用的网址:

Google Sheet 和函数:

=importXML(F2, "//html//body[@id='thebody']//div[@id='content']//div[@id='pagetitle']")


正在使用的网站和源代码部分

我试图从网站上提取的标题是 TOWPATH 24th ANNUAL THANKSGIVING JR SINGLES

网站的link是https://m.tennislink.usta.com/tournamenthome?T=225779

更新:

=REGEXEXTRACT(QUERY(ARRAY_CONSTRAIN(IMPORTDATA(
 "https://m.tennislink.usta.com/tournamenthome?T=225779"), 555, 1), 
 "where Col1 contains 'escape'"), "\(""(.*)""\)")


不幸的是,这不可能按照您尝试的方式进行,因为您尝试抓取的字段由 JavaScript 控制,而 Google Sheets 不能 understand/import JS。您可以简单地通过为给定的 link 禁用 JS 来测试它,您将看到究竟可以将什么导入 Google Sheets:

这个示例公式怎么样?在这个公式中,title 值是在将值放入 #pagetitle 之前直接从脚本中检索的。请将此视为几个答案之一。

示例公式:

=REGEXEXTRACT(IMPORTXML(A1,"//div[@class='tournament_search']/script"),"escape\(""([\w\s\S]+)""")

结果:

https://m.tennislink.usta.com/TournamentHome/tournament.aspx?T=38079https://m.tennislink.usta.com/tournamenthome?T=225779分别放入"A1"和"A2"时,结果如下

参考: