2009-06-02 9 views
17

यह एक बेवकूफ सवाल हो सकता है, लेकिन क्या उपयोगकर्ता को Google खोज बॉक्स में टाइप करने के लिए यह संभव है, ताकि इसका उपयोग मेरी वेबसाइट पर लैंडिंग पृष्ठ पर गतिशील पृष्ठ उत्पन्न करने के लिए किया जा सके?क्या Google खोज से खोज शब्द कैप्चर करना संभव है?

उदाहरण के लिए, मान लीजिए कि कोई व्यक्ति "हॉट डॉग" के लिए Google की खोज करता है, और मेरी साइट खोज परिणाम लिंक में से एक के रूप में आती है। यदि उपयोगकर्ता उस लिंक पर क्लिक करता है जो उन्हें मेरी वेबसाइट पर निर्देशित करता है, तो क्या मेरे लिए Google खोज बॉक्स से "हॉट डॉग" टेक्स्ट को किसी भी तरह से जानना या कैप्चर करना संभव है, ताकि मैं एक स्क्रिप्ट को कॉल कर सकूं जो सामग्री के लिए मेरे स्थानीय डेटाबेस की खोज करे गर्म कुत्तों से संबंधित, और फिर इसे प्रदर्शित करते हैं? यह मेरे लिए बिल्कुल असंभव प्रतीत होता है, लेकिन मुझे वास्तव में पता नहीं है। धन्यवाद।

+1

ध्यान रखें कि रेफरर को क्लाइंट की सनकी पर पूरी तरह से फंसे या अवरुद्ध किया जा सकता है। – Powerlord

+1

सिर्फ एक नोट, चूंकि आप नए हैं: पहले जवाब को स्वीकार करने के लिए इतनी जल्दी न हो। सिर्फ इसके कारण 1 अपवोट है, इसका मतलब यह नहीं है कि इसका सही – TStamper

+0

@TStamper: अच्छा बिंदु और टिप के लिए धन्यवाद। मैं बहुत उत्साहित था कि मुझे कितनी जल्दी जवाब मिला। – johnnyb10

उत्तर

13

हां, यह संभव है। HTTP शीर्षलेख Referer देखें। रेफरर हेडर में Google खोज परिणाम पृष्ठ का URL होगा।

उपयोगकर्ता एक Google खोज परिणाम पृष्ठ पर एक लिंक क्लिक करता है, ब्राउज़र HTTP हेडर के इस प्रकार के साथ अपनी साइट के लिए एक अनुरोध कर देगा:

Referer: http://www.google.fi/search?hl=en&q=http+header+referer&btnG=Google-search&meta=&aq=f&oq= 

बस अनुरोध हेडर से URL पार्स, खोज शब्द का प्रयोग किया उपयोगकर्ता द्वारा q -parameter में होगा। उपरोक्त उदाहरण में उपयोग की जाने वाली खोज शब्द "http शीर्षलेख रेफरर" है।

समान प्रकार का दृष्टिकोण आम तौर पर अन्य खोज इंजनों के लिए भी काम करता है, उनके पास रेफरर हेडर में अलग-अलग प्रकार का यूआरएल है।

यह answer दिखाता है कि PHP में इसे कैसे कार्यान्वित किया जाए।


रेफरर हेडर केवल HTTP 1.1 के साथ उपलब्ध है, लेकिन इसमें किसी भी कुछ आधुनिक ब्राउज़र को शामिल किया गया है। ब्राउज़र रेफरर हेडर भी बना सकता है या हेडर पूरी तरह से गायब हो सकता है, इसलिए रेफरर हेडर के आधार पर बहुत गंभीर desicions मत बनें।

+3

यह छोड़कर, आपके पृष्ठ को खोज परिणामों में चालू करने के लिए पहले से ही प्रासंगिक सामग्री – kdgregory

+6

होने की आवश्यकता है 2011 के अंत में Google सुरक्षा में परिवर्तन, यह अब संभव नहीं है जब एक साइन-इन किए गए Google उपयोगकर्ता द्वारा खोज की गई: http://googleblog.blogspot.com/2011/10/making-search-more-secure.html और http : //analytics.blogspot.com/2011/10/making-search-more-secure-accessing.html –

1

हाँ, यह यूआरएल में आती है:

गूगल आपको कीवर्ड वे आने के लिए इस्तेमाल किया पाने के लिए चाहते हैं, तो आपकी साइट के लिए कई पर्यटकों को भेजता है:

http://www.google.com/search?hl=es&q=hot+dog&lr=&aq=f&oq=

यहाँ

एक उदाहरण है अपनी साइट पर, शायद उन्हें पृष्ठ पर प्रदर्शित करके या केवल डेटाबेस में कीवर्ड को संग्रहीत करने के लिए प्रभावित करने के लिए, PHP कोड का उपयोग करें:

// take the referer 
$thereferer = strtolower($_SERVER['HTTP_REFERER']); 
// see if it comes from google 
if (strpos($thereferer,"google")) { 
    // delete all before q= 
    $a = substr($thereferer, strpos($thereferer,"q="));  
    // delete q= 
    $a = substr($a,2); 
    // delete all FROM the next & onwards 
    if (strpos($a,"&")) { 
     $a = substr($a, 0,strpos($a,"&")); 
    } 
    // we have the results. 
    $mygooglekeyword = urldecode($a); 
} 

and we can use <?= $mygooglekeywords ?> when we want to output the 
keywords. 
+1

वाह, सभी को धन्यवाद। मैं एक नम्र नौसिखिया हूँ। मैंने चार मिनट पहले अपना प्रश्न पोस्ट किया और तीन उपयोगी जवाब वापस ले लिया। ढेर ओवरफ्लो नियम! – johnnyb10

+1

इससे ऐसा करने के लिए बेहतर तरीके हैं। PHP को यूआरएल पार्स करने के लिए फ़ंक्शन में बनाया गया है। parse_url, parse_str यह 3 लाइन बनाता है। –

0

आप रेफरिंग यूआरएल को पकड़ सकते हैं और क्वेरी स्ट्रिंग से सर्च टर्म ले सकते हैं। खोज क्वेरी में "q = searchTerm" के रूप में होगी जहां searchTerm वह पाठ है जिसे आप चाहते हैं।

24

मैं इसे इस

$referringPage = parse_url($_SERVER['HTTP_REFERER']); 
if (stristr($referringPage['host'], 'google.')) 
{ 
    parse_str($referringPage['query'], $queryVars); 
    echo $queryVars['q']; // This is the search term used 
} 
+0

इसे करने के लिए बहुत साफ तरीका +1। अंतरराष्ट्रीय Google डोमेन नाम (google.fi, google.de आदि) और Google छवि खोज के साथ संगत कोड बनाने के लिए –

+1

+1। –

+1

धन्यवाद! मुझे लगता है कि झूठी सकारात्मक के लिए अभी भी एक क्षमता है - google.domain.com के साथ कोई - लेकिन यह केवल एक उदाहरण था। आप $ referringPage ['path'] के मूल्य की जांच करके इसे कस कर सकते हैं और उसके बाद, $ queryVars ['q'] –

0

यही बात पसंद है, लेकिन से निपटने

<?php 
if (@$_SERVER['HTTP_REFERER']) { 
    $referringPage = parse_url($_SERVER['HTTP_REFERER']); 
    if (stristr($referringPage['host'], 'google.')) { 
     parse_str($referringPage['query'], $queryVars); 
     $google = $queryVars['q']; 
     $google = str_replace("+"," ",$google); } 
    else { $google = false; }} 
else { $google = false; } 

if ($google) { echo "You searched for ".$google." at Google then came here!"; } 
else { echo "You didn't come here from Google"; } 
?> 
0

क्षमा कुछ त्रुटि के साथ, एक छोटे से अधिक
बिंग, याहू और Altavista

के लिए समर्थन जोड़ता है
<?php 
if (@$_SERVER['HTTP_REFERER']) { 
    $referringPage = parse_url($_SERVER['HTTP_REFERER']); 
    if (stristr($referringPage['host'], 'google.') 
     || stristr($referringPage['host'], 'bing.') 
     || stristr($referringPage['host'], 'yahoo.')) { 
      parse_str($referringPage['query'], $queryVars); 
      if (stristr($referringPage['host'], 'google.') 
       || stristr($referringPage['host'], 'bing.')) { $search = $queryVars['q']; } 
         else if (stristr($referringPage['host'], 'yahoo.')) { $search =  $queryVars['p']; } 
         else { $search = false; } 
      if ($search) { $search = str_replace("+"," ",$search); }} 
      else { $search = false; }} 
else { $search = false; } 
if ($search) { echo "You're in the right place for ".$search; } 
?> 
+0

एनबी: altavista yahoo के स्वामित्व में प्रतीत होता है, जब आप इसके साथ खोज करते हैं तो आपको याहू खोज पृष्ठ पर रीडायरेक्ट किया जाता है, इसलिए याहू की खोज।शीर्षलेख में दोनों खोज इंजन – Senya

13

यह एक पुराना प्रश्न है और उत्तर बदल गया है या अजीब सवाल पूछा गया और जवाब दिया गया। अक्टूबर 2011 तक Google Google खाते में लॉग इन किए गए किसी भी व्यक्ति के लिए इस रेफ़रल जानकारी को एन्क्रिप्ट कर रहा है: http://googleblog.blogspot.com/2011/10/making-search-more-secure.html

उपयोगकर्ताओं के लिए Google में लॉग इन नहीं किया गया है, खोज कीवर्ड अभी भी रेफ़रल URL में पाए जाते हैं और ऊपर दिए गए उत्तर अभी भी लागू होते हैं। हालांकि, प्रमाणित Google उपयोगकर्ताओं के लिए, वेबसाइट को उनके खोज कीवर्ड देखने का कोई तरीका नहीं है।

हालांकि, समर्पित लैंडिंग पृष्ठों को बनाकर यह अभी भी एक बुद्धिमान अनुमान बनाना संभव हो सकता है। ("जब्बा द हत्त के डिग्निफाइड चारकोल स्केच" के आगंतुक शायद ... अच्छी तरह से पागल हैं।)

5

यह एक पुराना सवाल है, लेकिन मुझे पता चला कि Google अब क्वेरी शब्द नहीं देता है क्योंकि यह डिफ़ॉल्ट रूप से प्रत्येक उपयोगकर्ता को https पर रीडायरेक्ट करता है जो आपको "क्यू" पैरामीटर नहीं देगा। जब तक कि कोई व्यक्ति http url को http (http://google.com) के साथ मैन्युअल रूप से दर्ज नहीं करता है और फिर खोज करता है, तो "q" पैरामीटर प्राप्त करने के लिए अभी कोई तरीका नहीं है।

+0

शामिल हैं यह वह जवाब है जिसे मैं डरता था मुझे मिल जाएगा। मैंने देखा होगा कि मेरी खोज ट्रैकिंग में अब कोई भी खोज शब्द नहीं है और यह क्यों होना चाहिए। – felwithe