Послідовно, я відчуваю себе щасливим макросом для 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+Lucky, google.com/search?btnI=1&q=new%20york%20dijon,google.com/search?btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&q=new%20york%20dijon
Іван Чау

Я думаю, функціональність безпечного пошуку перешкоджає цій функції.
Іван Чау

Я спробую побачити, як налаштована форма HTML у Firefox із включеним Noscript.
Тільки Джейк

Ця стаття також може вас зацікавити. Відповідно до цього, він працює з двома ключовими словами, але не з 3. І навіть тоді якось, не завжди; (я думаю, btnIпрацює з до двох ключових слів І якщо Google не вирішить, ви могли б ввести щось не так (наприклад Did you mean: geeks alive). Інакше трохи Javascript використовується для переадресації
Rik

@JustJake, кнопка щасливі містить нестандартний атрибут: jsaction="sf.lck".
Synetech

Відповіді:


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, так і Referrerзаголовок HTTP , https://www.google.comщоб відстежувати, чи дійсно ви прийшли з домашньої сторінки Google і натиснули кнопку "Мені здається ". Я не думаю, що ви зможете переконати Google вручити вам щасливий результат лише URL-адресою.


1

Найкраще рішення, яке я придумав: Chrome> Налаштування> Керування пошуковими системами ... додати:

  • Пошукова система: я відчуваю себе щасливою
  • Ключове слово: \ (замініть бажаним ярликом)
  • URL: {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;

Налаштування сценарію на "запуск на тілі" та додавання будь-яких додаткових TLD Google, як ви вважаєте за потрібне (я не міг змусити регекс працювати в Tampermonkey).


Це працює для простих запитів, але не більш складних, на жаль. Сценарій, який використовує JavaScript для натискання верхнього результату, був би кращим.
Кевін

0

Деякі з інакше елегантних рішень на цій сторінці більше не діють, тому я додаю тут своє рішення, яке працює для мене на хроніку tampermonkey у грудні 2018 року.

@match vs. @include змінився на tampermonkey (@match не може включати терміни запиту), що викликало досить багато розладів налагодження з цим у випадку, якщо Google змінить їх URL-адреси.

// ==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()
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.