Предложение изображения с помощью jQuery от Google - PullRequest
1 голос
/ 15 апреля 2010

Я бы хотел сделать скрипт, который будет искать в Google и отображать 1-е релевантное изображение.

Я имею в виду, если вы введете в поле ввода: car

, если вы ищете слово "автомобиль" через Google , и оно предложит мне 1-е изображение.

Как вы думаете, есть ли способ сделать это?

Ответы [ 4 ]

1 голос
/ 16 апреля 2010

Гоча

<!--
  copyright (c) 2009 Google inc.

  You are free to copy and use this sample.
  License can be found here: http://code.google.com/apis/ajaxsearch/faq/#license
-->

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <title>Google AJAX Search API Sample</title>
    <script src="http://www.google.com/jsapi?key=ABQIAAAA1XbMiDxx_BTCY2_FkPh06RRaGTYH6UMl8mADNa0YKuWNNa8VNxQEerTAUcfkyrr6OwBovxn7TDAH5Q"></script>
    <script type="text/javascript">
    /*
    *  How to search for images and restrict them by size.
    *  This demo will also show how to use Raw Searchers, aka a searcher that is
    *  not attached to a SearchControl.  Thus, we will handle and draw the results
    *  manually.
    */

    google.load('search', '1');

    function searchComplete(searcher) {
      // Check that we got results
      if (searcher.results && searcher.results.length > 0) {
        // Grab our content div, clear it.
        var contentDiv = document.getElementById('content');
        contentDiv.innerHTML = '';

        // Loop through our results, printing them to the page.
        var results = searcher.results;
        for (var i = 0; i < results.length; i++) {
          // For each result write it's title and image to the screen
          var result = results[i];
          var imgContainer = document.createElement('div');

          var title = document.createElement('h2');
          // We use titleNoFormatting so that no HTML tags are left in the title
          title.innerHTML = result.titleNoFormatting;

          var newImg = document.createElement('img');
          // There is also a result.url property which has the escaped version
          newImg.src = result.tbUrl;

          imgContainer.appendChild(title);
          imgContainer.appendChild(newImg);

          // Put our title + image in the content
          contentDiv.appendChild(imgContainer);
        }
      }
    }

    function OnLoad() {
      // Our ImageSearch instance.
      var imageSearch = new google.search.ImageSearch();

      // Restrict to extra large images only
      imageSearch.setRestriction(google.search.ImageSearch.RESTRICT_IMAGESIZE,
                                 google.search.ImageSearch.IMAGESIZE_MEDIUM);

      // Here we set a callback so that anytime a search is executed, it will call
      // the searchComplete function and pass it our ImageSearch searcher.
      // When a search completes, our ImageSearch object is automatically
      // populated with the results.
      imageSearch.setSearchCompleteCallback(this, searchComplete, [imageSearch]);

      // Find me a beautiful car.
      imageSearch.execute("Subaru STI");
    }
    google.setOnLoadCallback(OnLoad);
    </script>
  </head>
  <body style="font-family: Arial;border: 0 none;">
    <div id="content">Loading...</div>
  </body>
</html>
​

парапапапа, мы любим Google.

1 голос
/ 15 апреля 2010

да, есть API .... проверьте это:

http://www.codeproject.com/KB/IP/google_image_search_api.aspx

Вы всегда можете поиграть: http: // code.google.com/apis/ajax/playground/

/ ********************************************** ************************************************** ************************************************** ************************************************** *********************** Пока вам конкретно разрешено сделать это в отдельном соглашении с Google. ************************************************** ************************************************** ************************************************** ************************************************** **************** /

1 голос
/ 15 апреля 2010

Да, это вполне возможно при использовании Google AJAX Search API .

Ваш код будет выглядеть примерно так:

var imageSearch = new google.search.ImageSearch();
imageSearch.setSearchCompleteCallback(this, function(results) {
  // figure out which picture from results you want
});
imageSearch.execute('car');
1 голос
/ 15 апреля 2010

Вам понадобится либо API-интерфейс JSON-P от Google, который предоставляет эти данные (и я не думаю, что они его предоставляют), либо для написания сценария на стороне сервера, который запускается на вашем сервере и запрашивает Google (что может ) является нарушением их Условий предоставления услуг, поэтому проверьте мелким шрифтом , прежде чем идти дальше).

Обновление:

5.3. Вы соглашаетесь не получать (или пытаться получить доступ) к каким-либо Сервисам каким-либо образом, кроме как через интерфейс, предоставляемый Google, если только вам не было специально разрешено сделать это в отдельном соглашении с Google. Вы, в частности, соглашаетесь не осуществлять доступ (или пытаться получить доступ) к каким-либо Услугам с помощью каких-либо автоматизированных средств (включая использование сценариев или сканеров веб-страниц) и обязуетесь соблюдать инструкции, изложенные в любом файле robots.txt, представленном на Сервисах .

То, что вы просите сделать, - это получить доступ к данным с помощью автоматических средств, поэтому вы нарушите условия обслуживания Google.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...