2012-02-08 20 views
5

संक्षेप में, मैं यह करने के लिए एक रास्ता तलाश कर रहा हूँ:PHP खोज में Google खोज परिणाम पढ़ें?

$results_array = google("search terms"); // returns array of URLs 

तो, उदाहरण के लिए, यदि मेरे खोज शब्द थे "बिल्ली वीडियो" मेरे $ results_array [0] एक यूट्यूब यूआरएल हो सकता है, और $ results_array 1 Vimeo पर हो सकता है।

मैंने Google कस्टम सर्च एपीआई देखी है, लेकिन उन्हें सभी को जटिल JSON ट्रांसफॉर्मेशन, एटीओएम, आरईएसटी या कुछ अन्य सिस्टम की आवश्यकता है जो कि मैं जो करने की कोशिश कर रहा हूं उसके लिए अत्यधिक जटिल है।

क्या वहां कोई आसान समाधान है?

संपादित करें: मैं इसे एक और पोस्ट करने के लिए मिल गया धन्यवाद

धन्यवाद this post को मैं यह पता लगाने में सक्षम था। संक्षेप में, मैं बस निम्नलिखित प्रयोग किया है:

$results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

echo $results->responseData->results[$resultNumber]->url; 

मैं थोड़ा हैरान और downvotes द्वारा disapointed हूँ - इसके साथ काफी एक आम सवाल, वास्तव में, काफी सरल जवाब हो रहा है। इसमें JSON शामिल है, लेकिन यह उपयोगकर्ता के लिए पूरी तरह से पारदर्शी है। शायद मैंने जो पूछा उससे भी अधिक सटीक समाधान होगा:

function google($query) { 
    $results = json_decode(file_get_contents( 
      'http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q='. 
      urlencode($search))); 

    return $results->responseData->results 
} 
+4

JSON अत्यधिक जटिल कैसे है? आपके कार्यान्वयन के लिए पहली पसंद की तरह लगता है। HTML खोज परिणामों को पार्स करने की तरह कुछ निश्चित रूप से कम जटिल ... –

+2

Google को कुछ भी पसंद नहीं है जो उनके एपीआई को बाईपास करने का प्रयास करता है, इसलिए यदि आप सीधे अनुरोध करने और परिणामों को पार्स करने का प्रयास करेंगे - तो आपके होस्ट पर प्रतिबंध लगा दिया जा सकता है। – Cheery

उत्तर

3

यदि आप वीडियो परिणाम प्राप्त करना चाहते हैं तो आप इसे आजमा सकते हैं।

//replace space between words with + 
$query = "cat+video"; 
$start = 0; 
/* 
this url will give you json response with 4 results each time. 
u have to change the $start like 0, 4, 8,... 
use json_decode() and get it in array 
*/ 

$url = 'https://ajax.googleapis.com/ajax/services/search/video?v=1.0&q='.$query.'&start='.$start 

आशा है कि यह सहायक होगा।

संबंधित मुद्दे