gpt4 book ai didi

Javascript:从 Google 的 "I' m 感觉幸运”功能获取重定向链接

转载 作者:行者123 更新时间:2023-12-03 00:32:25 27 4
gpt4 key购买 nike

我需要编写一个 Javascript 函数,从 Google 的“我感觉很幸运”按钮获取重定向链接。

该函数应采用:

http://www.google.com/search?q="stackoverflow"&btnI

并返回:

https://stackoverflow.com

我已经尝试过:

function getRedirect(url) {
var response = UrlFetchApp.fetch(url, {'followRedirects': true, 'muteHttpExceptions': true});
var redirectUrl = response.getHeaders()['Location']; // undefined if no redirect, so...
var responseCode = response.getResponseCode();
if (redirectUrl) { // ...if redirected...
var nextRedirectUrl = getRedirect(redirectUrl); // ...it calls itself recursively...
Logger.log(url + " is redirecting to " + redirectUrl + ". (" + responseCode + ")");
return nextRedirectUrl;
}
else { // ...until it's not
Logger.log(url + " is canonical. (" + responseCode + ")");
return url;
}
}

但是它不起作用,因为它只处理 http 重定向。我想 Google 的“我感觉很幸运”按钮的工作方式有所不同。

最佳答案

  • 您想要从 http://www.google.com/search?q="stackoverflow"&btnI 检索重定向链接的 URL https://stackoverflow.com

如果我的理解是正确的,那么修改一下怎么样?

修改点:

  • 在这种情况下,请使用followRedirects: false
  • 您可以从 header 和响应正文中检索 URL。

修改后的脚本:

var url = 'http://www.google.com/search?q=%22stackoverflow%22&btnI';
var response = UrlFetchApp.fetch(url, {'followRedirects': false, 'muteHttpExceptions': true});
var redirectUrl = response.getHeaders()['Location'];
Logger.log(redirectUrl) // https://stackoverflow.com

您还可以按如下方式检索 URL。

var redirectUrl = response.getContentText().match(/HREF=\"(\w.+)\"/)[1];
Logger.log(redirectUrl) // https://stackoverflow.com

注意:

  • 如果您使用 http://www.google.com/search?q="stackoverflow"&btnI,请像 http://www.google.com/那样进行网址编码搜索?q=%22stackoverflow%22&btnI
    • 您还可以使用http://www.google.com/search?q=stackoverflow&btnI

引用:

如果我误解了你的问题,我很抱歉。

关于Javascript:从 Google 的 "I' m 感觉幸运”功能获取重定向链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801313/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com