一致,我对Google感到幸运


12

我正在用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中完成。如果发布的话,我会将油脂猴子脚本解决方法标记为正确。


这些失败:google.com/search?q=new%20york%20dijon&btnI=Im+Feeling+Luckygoogle.com/search?btnI=1&q=new%20york%20dijongoogle.com/search?btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&q=new%20york%20dijon
伊万洲

我猜安全搜索功能会阻碍该功能。
Ivan Chau

我将尝试查看如何在启用了Noscript的Firefox中设置HTML表单。
Just Jake 2014年

本文也可能使您感兴趣。根据它,它可以使用2个关键字,但不能使用3个。即使这样,也不是总是如此((我认为btnI最多可以使用2个关键字,如果 Google不能确定您可能键入了错误的内容,例如Did you mean: geeks alive)。的javascript用于重定向您
Rik 2014年

@JustJake,幸运按钮包含一个非标准属性:jsaction="sf.lck"
Synetech 2014年

Answers:


2

解决了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


1

禁用Javascript后,似乎Google会同时使用cookie和HTTP Referrer标头,https://www.google.com以跟踪您是否真正来自Google主页并单击“我很幸运”按钮。我认为您无法说服Google仅用URL即可给您带来幸运的结果。


1

我想出的最好的解决方案是: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中使用正则表达式)。


不幸的是,这适用于简单查询,但不适用于更复杂的查询。使用javascript单击顶部结果的脚本会更好。
凯文(Kevin)

0

此页面上的某些原本优雅的解决方案不再起作用,因此我在这里添加了我的解决方案,该解决方案将于2018年12月在我身上使用tampermonkey chrome。

@match vs. @include的tampermonkey发生了变化(@match无法包含查询字词),如果Google更改了其网址,这会导致很多调试上的挫败感。

// ==UserScript==
// @name         I'm feeling lucky fix
// @version      0.1
// @description  Makes Google I'm feeling lucky work reliably from the address bar
// @author       Kevin Watt
// @include      https://www.google.*/*btnI*
// ==/UserScript==
// // @match      https://*/*
if (location.href.indexOf('btnI')) document.querySelector('#search a').click()
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.