लगातार मैं Google के लिए लकी मैक्रो महसूस कर रहा हूं


12

मैं एक खोज शब्द के पहले 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

"new york dijon" फ्रंट-पेज पर और फिर "I’m Feeling Lucky" मारते हुए काम करता है।

किसी भी विचार मैं इसे URL रूप में लगातार काम करने के लिए कैसे प्राप्त कर सकता हूं?

संपादित करें: ठीक है, ऐसा लगता है कि यह एक URL में संभव नहीं है। यदि पोस्ट किया गया है तो मैं एक greasemonkey-script वर्कअराउंड को सही मानूंगा।


ये असफल: 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
इवान चौ

मुझे लगता है कि सुरक्षित खोज कार्यक्षमता सुविधा में बाधा है।
इवान चौ

मैं यह देखने की कोशिश करने जा रहा हूं कि फ़ायरफ़ॉक्स में Noscript के साथ HTML फॉर्म कैसे सेट किया जाता है।
जेक

यह लेख भी आपकी रूचि ले सकता है। इसके अनुसार, यह 2 कीवर्ड के साथ काम करता है, लेकिन 3. नहीं और फिर भी किसी तरह, हमेशा नहीं। (मुझे लगता है कि btnI2 कीवर्ड तक काम करता है और अगर Google यह तय नहीं करता है कि आपने कुछ गलत टाइप किया है (जैसे Did you mean: geeks alive)। जावास्क्रिप्ट का उपयोग आपको पुनर्निर्देशित करने के लिए किया जाता है।
रिक

@JustJake, भाग्यशाली बटन में एक गैर-मानक विशेषता है jsaction="sf.lck":।
Synetech

जवाबों:


2

एक वर्कअराउंड ग्रीसीमेक स्क्रिप्ट बनाया:

// ==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 होम पेज से आए हैं और "आई एम फीलिंग लकी" बटन पर क्लिक किया है। मुझे नहीं लगता कि आप Google को केवल एक URL के साथ भाग्यशाली परिणाम सौंपने के लिए मना पाएंगे।


1

सबसे अच्छा समाधान जो मैं लेकर आया हूं वह है: Chrome> प्राथमिकताएं> खोज इंजन प्रबंधित करें ... जोड़ें:

  • सर्च इंजन: आई एम फीलिंग लकी
  • कीवर्ड: \ (अपने पसंदीदा शॉर्टकट से बदलें)
  • URL: {google: baseURL} खोज? Q =% s & btnI

फिर इस सूत्र के अनुसार , Google के साथ पृष्ठ को पुनः लोड करने के लिए निम्न Greasemonkey / Tampermonkey स्क्रिप्ट जोड़ें।

// ==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 को जोड़ने के लिए सेट करना जैसा कि आप फिट देखते हैं (मैं टैम्परमॉन्की में काम करना regex नहीं पा सका)।


यह सरल प्रश्नों के लिए काम करता है लेकिन दुर्भाग्य से अधिक जटिल नहीं है। एक स्क्रिप्ट जो शीर्ष परिणाम पर क्लिक करने के लिए जावास्क्रिप्ट का उपयोग करती है वह बेहतर होगी।
केविन

0

इस पृष्ठ पर कुछ अन्यथा सुरुचिपूर्ण समाधान अब काम नहीं करते हैं, इसलिए मैं यहां अपना समाधान जोड़ रहा हूं, जो कि मेरे लिए 2018 की दिसंबर में छेड़छाड़ क्रोम पर काम कर रहा है।

@match बनाम @include छेड़छाड़ के लिए बदल गया है (@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 Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.