Grupa MagazynyInternetowe
Online: 905Wygląd wyszukiwarki oraz wyników wyszukiwania modyfikujemy stylami CSS. Umożliwiają to liczne klasy zawarte w kodzie HTML, zwracanym przez Google. Najważniejsze są:
Po zastosowaniu stylów z listingu 3:
1. .gsc-search-box { 2. border: 2px solid red; 3. } 4. .gsc-resultsHeader { 5. border: 2px solid blue; 6. } 7. .gsc-result { 8. border: 2px solid green; 9. } 10. .gsc-cursor-box { 11. border: 2px solid yellow; 12. } 13. .gs-title { 14. font-family: "Trebuchet MS", sansserif; 15. } 16. .gs-snippet { 17. font-family: Georgia, serif; 18. } 19. .gs-visibleUrl { 20. font-family: "Courier New", mono 21. space; 22. }
wyniki wyszukiwania będą wyglądały tak jak na rysunku 5. Do dokładnej analizy klas HTML w wynikach wyszukiwania warto wykorzystać Inspektora DOM. Pozwala on na wędrówkę po drzewie dokumentu.
Rys. 5. Wygląd wyników wyszukiwania po zastosowaniu
stylów z listingu 3
W ten sposób poznamy dokładną strukturę zwracanego kodu HTML, wszystkie identyfikatory oraz klasy. Działanie inspektora DOM na wynikach wyszukiwania jest przedstawione na rysunku 6.
Rys. 6. Analiza struktury wyników wyszukiwania
przy użyciu Inspektora DOM
Licencja użytkownika usług Google AJAX Search API nakazuje umieszczenie logo Google na każdej stronie stosującej API. Zadanie to wykorzystujemy, wywołując metodę getBranding(), jak to pokazano na listingu 4. Jest to szczególnie istotne wtedy, gdy stosujemy style CSS, które ukrywają logo Google.
1. <html> 2. <head> 3. ... 4. <script type="text/javascript"> 5. google.load("search", "1"); 6. function OnLoad() 7. { 8. GSearch.getBranding(document.getElementById("branding")); 9. } 10. google.setOnLoadCallback(OnLoad); 11. </script> 12. </head> 13. <body> 14. <div id="branding">Loading...</div> 15. </body> 16. </html>
Przedstawiona na listingu 2 metoda execute() może być wywoływana ręcznie. Na przykład w obsłudze hiperłączy:
<a href="javascript:search.execute('Nikon D80');">Nikon D80</a>
W tym celu wystarczy wewnątrz metody OnLoad() zapamiętać referencję do obiektu search- Control. W takim przypadku możemy zrezygnować z wyświetlania formularza do wyszukiwania:
1. form.gsc-search-box { 2. display: none; 3. }
Pamiętajmy, że w tym przypadku musimy samodzielnie wyświetlić logo Technologii Google.
Listing zwinięty - 38 linii
Google AJAX Search API pozwala na przeszukiwanie zasobów wyszukiwarki Google nie tylko z wykorzystaniem JavaScriptu, ale także przy użyciu skryptów wykonywanych po stronie serwera, a więc w PHP, Perlu, Ruby czy Pythonie. Wyszukiwanie w sieci WWW realizuje skrypt o adresie: http://ajax.googleapis.com/ajax/services/search/web
Ma on dwa obowiązkowe parametry: v oraz q. Parametr v ustala wersję oprogramowania (obecny interfejs Google AJAX Search API jest opatrzony numerem wersji 1.0), zaś q zawiera wyszukiwaną frazę. Adres: http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=ala zwróci wyniki wyszukiwania słowa ala w formacie JSON.
Listing 6 przedstawia skrypt, który wyszukuje frazę phpDocumentator.
1. <?php 2. $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=phpdocumentator"; 3. $ch = curl_init(); 4. curl_setopt($ch, CURLOPT_URL, $url); 5. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 6. curl_setopt($ch, CURLOPT_REFERER, "http://gajdaw.pl"); 7. $body = curl_exec($ch); 8. curl_close($ch); 9. $json = json_decode($body); 10. echo $json->responseData->results[0]->url; 11. echo $json->responseData->results[0]->title; 12. echo $json->responseData->results[0]->content; 13. ?>
Korzystając z biblioteki CURL, przekazujemy informacje o adresie, z którego nadchodzi żądanie (REFERER). Odebrane wyniki konwertujemy na obiekty:
$json = json_decode($body);
po czym wyświetlamy:
echo $json->responseData->results[0]->url;
Wszystkie wyniki wyszukiwania są zawarte w kolejnych elementach tablicy $json->responseData->results. Każdy wynik ma następujące składowe:
Odebrane wyniki możemy wyświetlić, stosując dowolny kod HTML, jak to zostało przedstawione na rysunku 7.
Rys. 7. Wyniki wyszukiwania odebrane w PHP
Warto zwrócić uwagę, że w ramach usług Google AJAX Search API firma Google zapewnia dostęp nie tylko do własnego kodu, ale także do najpopularniejszych bibliotek JavaScript. Funkcja load(), której użyliśmy na listingu 1:
google.load("search", "1");
pozwala na załadowanie bibliotek jQuery, prototype, script.aculo.us, MooTools oraz dojo:
1. google.load("jquery", "1.2.3"); 2. google.load("prototype", "1.6"); 3. google.load("scriptaculous", "1.8.1"); 4. google.load("mootools", "1.11"); 5. google.load("dojo", "1.1.1");
Skrypt przedstawiony na listingu 7 nie wymaga umieszczania na serwerze biblioteki jQuery, co pozwoli zmniejszyć obciążenie łącza.
1. <html> 2. <head> 3. ... 4. <script type="text/javascript"> 5. google.load("jquery", "1.2.3"); 6. </script> 7. <script type="text/javascript"> 8. $(document).ready(function(){$(‘p’).mouseover(function(){$(this).add Class(‘inny’);}); 9. $(‘p’).mouseout(function(){ 10. $(this).removeClass(‘inny’); 11. }); 12. }); 13. </script> 14. </head> 15. <body> 16. <p>Wskaż tekst myszką!</p> 17. </body> </html>
Jak widać, Google AJAX Search API zezwala na dużą dowolność w konstruowaniu własnej wyszukiwarki, zarówno w kwestii jej osadzenia na stronie, jak i doboru uruchamianych skryptów. Jest to idealne rozwiązanie dla każdego webmastera, który chciałby wzbogacić swój serwis o wyszukiwarkę od firmy Google.
Komentarzy: 2
To pozwala na przeszukanie tylko internetu. Jednak jest pewien przypadek jest pewnie jakas funkcja ktora pozwoli na przeszukanie w googlach wedlug slowa tylko twojej strony www. Trzeba po prostu przejrzec API Googla dla tego modulu. Np jak wpiszesz w wyszukiwarce "wifi site:http://wifi.owe.pl" wyszuka wszystkie wyniki dla slowa wifi ze strony wifi.owe.pl
Czy pozwala to na przeszukiwanie tylko internetu czy też własnej strony jak starsze rozwiązania.
Nie wiem czemu ale pana artykuły zawsze ciężko mi się czyta, takie lekko chaotyczne i niedopowiedziane ![]()
Artykuły tego autora:
Novell wraz z grupą partnerów zaprasza wszystkich chętnych do udziału w międzynarodowym konkursie (www.howdoyoulinux.com) na krótki film wideo w najciekawszy sposób przedstawiający zastosowania systemu Linux.
Polecamy:
Na skróty:
Magazyny Internetowe| Co za ile| Programy| Praca| Magazyn Internet| Internet Maker| Web Toster| ForumNasze serwisy: