我在Google表格中有一列链接。我想使用importxml
作为一个例子,这很好用
=importxml("https://en.wikipedia.org/wiki/List_of_postal_codes_of_Canada:_T", "//td/b")
即它会寻找td,然后拉出b(加拿大的邮政编码)
但是查找错误消息的此代码不起作用:
=importxml("https://www.awwwards.com/error1/", "//div/h1" )
我希望它拉出“ 您正在寻找的页面不存在。”
...在此页面上https://www.awwwards.com/error1/
我得到一个Resource at URL not found error
。我可能做错了什么?谢谢
答案 0 :(得分:1)
快速尝试并使用默认公式出错后
=IMPORTXML("https://www.awwwards.com/error1/", "//*")
=IMPORTHTML("https://www.awwwards.com/error1/", "table", 1)
=IMPORTHTML("https://www.awwwards.com/error1/", "list", 1)
=IMPORTDATA("https://www.awwwards.com/error1/")
似乎无法通过任何方式(常规公式)在Google表格中抓取该网站
答案 1 :(得分:0)
THE PAGE YOU WERE LOOKING FOR DOESN'T EXIST.
的URL中检索https://www.awwwards.com/error1/
的值。如果我的理解正确,那么这个答案如何?请认为这只是几个可能的答案之一。
我认为您的网址页面为Error 404 (Not Found)
。因此,在这种情况下,将返回状态代码404
。我以为这样,IMPORTXML
之类的内置函数可能无法检索HTML数据。
作为一种解决方法,如何将自定义函数与UrlFetchApp一起使用?使用UrlFetchApp时,即使状态码为404
,也可以检索HTML数据。
请复制以下脚本并将其粘贴到电子表格的脚本编辑器中。并将=SAMPLE("https://www.awwwards.com/error1")
放在电子表格的单元格中。这样,脚本将运行。
function SAMPLE(url) {
return UrlFetchApp
.fetch(url, {muteHttpExceptions: true})
.getContentText()
.match(/<h1>([\w\s\S]+)<\/h1>/)[1]
.toUpperCase();
}
https://www.awwwards.com/error1
的URL。当您将其用于其他URL时,可能无法检索预期结果。请注意这一点。muteHttpExceptions:如果为true,则如果响应代码指示失败,则fetch不会引发异常,而是返回HTTPResponse。默认值为false。
如果这不是您想要的方向,我深表歉意。