일관된 Google 느낌이 좋은 행운 매크로


12

Autohotkey를 사용하여 검색어의 첫 번째 Google 결과로 빠르게 이동하는 스크립트를 만들고 있습니다. 내 문제는 URL이 약간 일치하지 않지만이 작업을 위해 찾은 유일한 방법입니다.

http://www.google.com/search?q=searchterm&btnI=745

이것은 첫 번째 적중이 매우 좋은 것으로 간주 될 때만 작동합니다. 그렇지 않으면 Google은 정상적인 10 개의 결과를 보여줍니다. 그러나 첫 페이지에 나오는 실제 "I 'm Feeling Lucky"버튼은 항상 첫 번째 결과를 보여줍니다.

다음 링크를 시도하십시오.

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

첫 페이지에 "New York York Dijon"을 입력 한 다음 "I 'm Feeling Lucky"를 누르십시오.

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
이반 차우

안전한 검색 기능이 기능을 방해한다고 생각합니다.
Ivan Chau

Noscript가 활성화 된 Firefox에서 HTML 양식이 어떻게 설정되는지 살펴 보겠습니다.
Just Jake

이 기사 는 또한 당신에게 관심 있을 수 있습니다. 그것은에 따르면,이 개 키워드와 함께 작동,하지만 3. 그리고 그렇다하더라도 어떻게 든, 항상 (생각 btnI이 개 키워드를 최대로 작품을 그리고 만약 구글이 결정하지 않는 당신이 뭔가 잘못 (같은를 입력했을 수 있습니다 Did you mean: geeks alive) 그렇지 않으면 조금. 의 자바 스크립트가 당신을 리디렉션하는 데 사용됩니다
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의 "I Feel Lucky"선택 항목으로 안내합니다 www.google.com/?lucky=searchterm_goes_here.

FireFox에서로 이동하는 북마크의 키워드를 사용하여 사용하고 www.google.com/?lucky=%s있습니다.


1

자바 스크립트를 사용 중지하면 Google에서 쿠키와 HTTP Referrer헤더를 모두 사용 https://www.google.com하여 Google 홈페이지에서 실제로 왔고 "I 'm Feeling Lucky"버튼을 클릭했는지 추적 하도록 설정되어 있는 것 같습니다 . URL을 사용하여 Google에게 행운의 결과를 전하도록 설득 할 수는 없다고 생각합니다.


1

내가 찾은 가장 좋은 솔루션은 Chrome> 환경 설정> 검색 엔진 관리 ... 추가 :

  • 검색 엔진 : 운이 좋은 느낌입니다
  • 키워드 : \ (원하는 단축키로 교체)
  • URL : {google : baseURL} search? 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에서 정규식을 사용할 수 없음).


이것은 단순한 쿼리에는 적용되지만 불행히도 더 복잡한 쿼리에는 적용되지 않습니다. 자바 스크립트를 사용하여 상위 결과를 클릭하는 스크립트가 더 좋습니다.
케빈

0

이 페이지의 다른 우아한 솔루션이 더 이상 작동하지 않으므로 여기에 솔루션을 추가하고 있습니다.이 솔루션은 2018 년 12 월의 tampermonkey chrome에서 작동합니다.

@match와 @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()
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.