重复尝试后,importxml无法获取网址

问题描述

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

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

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

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

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

谢谢!

解决方法

经过大量的反复试验,我找到了解决自己问题的方法。我正在为需要通过邮政编码和日期查找天气信息的任何人详细解答。 我改用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,4)-32)/1.8))/((243.04+(mid(O$8,4)-32)/1.8)*(243.04+(mid(O$8,4)-32)/1.8)))),"Loading..."))

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...