我正在用 Autohotkey 编写一个小脚本,以便快速转到搜索词的第一个 Google 结果。我的问题是,我发现的唯一可以做到这一点的方法,尽管 URL 的行为有点不一致。
http://www.google.com/search?q=searchterm&btnI=745
这仅在第一次匹配被视为非常匹配时才有效。否则,Google 会显示正常的 10 个结果。但是,他们首页上的实际“手气不错”按钮总是将带您到第一个结果。
尝试以下链接:
http://www.google.com/search?q=new%20york&btnI=745 <- works
http://www.google.com/search?q=new%20york%20dijon&btnI=745 <- doesn't work
不过,在首页上显示“纽约第戎”,然后点击“手气不错”,确实有效。
知道如何才能让它以 URL 形式持续工作吗?
编辑:好的,看来这可能无法在单个 URL 中实现。如果发布,我会将一个 greymonkey-script 解决方法标记为正确。
答案1
制定了一个解决方法 Greasemonkey 脚本:
// ==UserScript==
// @name Google IFL
// @match https://*.google.com/*?lucky=*
// @match http://*.google.com/*?lucky=*
// ==/UserScript==
document.getElementById("gsr").style.display = 'none'; // optional. shows blank screen before forwarding. just looks better imo.
document.getElementById("gbqfq").focus();
var pathname = document.URL;
var start = pathname.indexOf("?lucky=");
var searchterm = pathname.substring(start+7);
document.getElementById("gbqfq").value = decodeURI(searchterm);
var btnLucky = document.getElementsByName('btnI')[0];
btnLucky.click();
该脚本将总是只要您导航至 ,就会将您转发到 Google 的“我感到很幸运”选项www.google.com/?lucky=searchterm_goes_here
。
我在 FireFox 中使用它,通过将关键字添加到书签中www.google.com/?lucky=%s
。
答案2
当您禁用 Javascript 时,Google 似乎会同时使用 cookie 和 HTTPReferrer
标头来https://www.google.com
跟踪您是否确实来自 Google 主页并点击了“手气不错”按钮。我认为您无法仅通过 URL 就说服 Google 向您提供幸运结果。
答案3
我想到最好的解决办法是:Chrome > 偏好设置 > 管理搜索引擎...添加:
- 搜索引擎:我感觉我是幸运的
- 关键词:\(替换为您喜欢的快捷方式)
- 网址:{google:baseURL}搜索?q=%s&btnI
然后按照此主题,添加以下 Greasemonkey / Tampermonkey 脚本以使用 Google 作为引荐来源重新加载页面。
// ==UserScript==
// @name I'm feeling lucky fix
// @version 0.0
// @description Makes Google I'm feeling lucky work reliably from the address bar
// @author Will Rice
// @match http://*.google.co.uk/search?q=*&btnI
// @match https://*.google.co.uk/search?q=*&btnI
// @match http://*.google.com/search?q=*&btnI
// @match https://*.google.com/search?q=*&btnI
// ==/UserScript==
document.getElementsByTagName("body")[0].style.display = "none";
window.location.href = location;
将脚本设置为“在主体中运行”,并根据需要添加任何其他 Google TLD(我无法在 Tampermonkey 中使用正则表达式)。
答案4
我发现?gfns=1&sourceid=navclient&q=your+query+string
比 效果好得多?btnI=1&q=your+query+string
。对我来说,后者经常触发需要人工交互的“重定向通知”。前者唯一不理想的一点是,有时我会收到一个查询触发“您的意思是:__?”,这也需要人工交互,但考虑到我的用例,这种情况对我来说不太常见……
...就我而言,我对书签小工具或必须针对每个浏览器进行的集成不太感兴趣,因此我更喜欢使用以前的 URL 语法,并且对此非常满意。我在终端 vim 中使用它在各种上下文中搜索光标下的内容。这为我节省了很多打字时间。