Google Sheet 使用 Importxml 错误无法获取 url

arm*_*usk 6 xpath google-sheets web-scraping google-apps-script google-sheets-formula

我想获取此网站上的价格数据(https://tarkov-market.com/item/Pack_of_sugar

但这不起作用

=IMPORTXML("https://tarkov-market.com/item/Pack_of_sugar","//*[@id='__layout']/div/div[1]/div/div[4]/div[1]/div[2]/div[1]/div[2]")
Run Code Online (Sandbox Code Playgroud)

Tan*_*ike 5

    \n
  • 55,500\xe2\x82\xbd您想要从 Google 电子表格的 URL 中检索价格https://tarkov-market.com/item/Pack_of_sugar并将其放入 Google 电子表格的单元格中。
  • \n
\n\n

我可以这样理解。如果我的理解是正确的,这个答案怎么样?

\n\n

问题和解决方法:

\n\n

不幸的是,IMPORTXML不能用于这种情况。因为IMPORTXML像这样使用=IMPORTXML("https://tarkov-market.com/item/Pack_of_sugar","//*"),会出现无法从URL中检索值之类的错误。因此,在这种情况下,作为解决方法,我建议使用 Google Apps 脚本作为自定义函数。当使用Google Apps脚本时,可以检索该值。

\n\n

示例脚本:

\n\n

请将以下脚本复制并粘贴到电子表格的容器绑定脚本中。并请放入=sampleFormula()牢房。这样,就可以将值放入单元格中。

\n\n
function sampleFormula() {\n  const url = "https://tarkov-market.com/item/Pack_of_sugar";\n  const html = UrlFetchApp.fetch(url).getContentText();\n  return html.match(/price:(.+?)<\\/title>/)[1].trim();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n结果:\n\n

在此输入图像描述

\n\n

笔记:

\n\n
    \n
  • 这个脚本是针对你的问题的。因此,当该脚本用于其他 URL 和场景时,可能会出现错误。请小心这一点。
  • \n
\n\n

参考:

\n\n\n

  • @Rubén 感谢您的评论。关于`根据这个问题,这个答案中的自定义功能不再起作用。它得到错误403。`,我认为在`403`的情况下,认为无法从Google端访问服务器。因此,在这种情况下,可以认为虽然在发布此答案时可以访问服务器,但服务器的规格已更改。对于无法继续检查服务器的状况,我深表歉意。 (2认同)