【问题标题】:importxml could not fetch url after repeated attempts反复尝试后,importxml 无法获取 url
【发布时间】:2020-08-13 23:01:48
【问题描述】:

我正在尝试在 Google 表格中导入多个日期和一个邮政编码的天气数据。我在以下基本公式中为此使用 importxml:

=importxml("https://www.almanac.com/weather/history/zipcode/89118/2020-01-21","//*")

当将此公式用于某些邮政编码和某些时间时,它会返回页面的全文,然后我会查询平均温度和平均露点。但是,对于上述示例以及在许多其他情况下,它会在单元格中返回“Could not fetch URL”和#N/A。

因此,问题是,它工作了很多次,但到第五个日期左右,它会抛出“无法获取 URL”错误。当我更改邮政编码时,它也失败了。基于阅读许多线程,我唯一的猜测是,因为我经常从表格中请求 URL,它最终被阻止了。还有其他任何人都可以看到的错误吗?我必须使用公式几次来计算相对湿度和其他东西,所以我需要它多次工作。是否有可能有更好的方法来使用脚本来完成这项工作?或者其他任何可能导致这种情况的原因? 这是有问题的电子表格(只是一个正在进行的工作,但天气部分是我的问题):https://docs.google.com/spreadsheets/d/1WPyyMZjmMykQ5RH3FCRVqBHPSom9Vo0eaLlff-1z58w/edit?usp=sharing

引发错误的公式从 N 列开始。 此工作表包含许多使用上述基本公式的公式,以防您想查看更多问题示例。

谢谢!

【问题讨论】:

  • 当您使用“基本公式”作为实际公式而不是嵌套在其他公式中时会发生什么?
  • @Rubén 可悲的是,同样的事情。您可以在单元格 U5 中看到该示例。我在没有任何变量的情况下尝试了它,只是为了看看发生了什么。
  • 虽然演示电子表格可能会有所帮助,但问题中应包含所有相关详细信息,例如公式、公式结果、文本错误消息(如果有)...
  • 我很抱歉。我试图包括所有这些。为了更清楚,我将编辑问题。

标签: web-scraping google-sheets google-sheets-formula google-sheets-importxml


【解决方案1】:

经过大量的反复试验,我找到了解决自己问题的方法。我正在为任何需要按邮政编码和日期查找天气信息的人详细回答这个问题。 我切换到使用 importdata,将其转置以加快查询速度,并使用辅助单元格来保存每个日期的结果。然后我让其他公式在辅助单元格的结果中搜索,而不是在整个过程中多次调用 import***。有时它很慢,但它确实有效。这是更新后的辅助公式(其中 O3 包含“YYYY-MM-DD”形式的日期,O5 包含 URL“https://www.almanac.com/weather/history/”,O4 包含邮政编码:

=if(O3="",,query(transpose(IMPORTdata($O$5&$O$4&"/"&O3)),"select Col487 where Col487 contains 'Mean'"))

然后得到温度(其中O3包含日期,O8包含上述公式):

=if(O3="",,iferror(text(mid(O$8,find("Mean Temperature",O$8)+53,4),"0.0° F"),"Loading..."))

最后,计算相对湿度:

=if(O3="",,iferror(if(now()=0,,exp(((17.625*243.04)*((mid(O$8,find("Mean Dew Point",O$8)+51,4)-32)/1.8-(mid(O$8,find("Mean Temperature",O$8)+53,4)-32)/1.8))/((243.04+(mid(O$8,find("Mean Temperature",O$8)+53,4)-32)/1.8)*(243.04+(mid(O$8,find("Mean Dew Point",O$8)+51,4)-32)/1.8)))),"Loading..."))

最重要的是,importdata 从未抛出过无法获取 URL 错误,因此对于这个特定站点来说,它似乎是一种更好的获取方法。

希望这可以帮助需要获取历史天气数据的其他人:)

【讨论】:

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