W tym artykule pokażę jak automatycznie pobrać wyniki wyszukiwania z Google przy pomocy PHP. Będziemy do tego wykorzystywali rozszerzenie cURL, ale opakowane w klasę, którą można pobrać tutaj: https://github.com/php-curl-class/php-curl-class

Na początek stwórz plik Google_Search.class.php i wpisz zawartość:

Na początek załączamy dwa potrzebne pliki (klasa Curl).
Tworzymy klasę Search_Google i definiujemy kilka zmiennych:

  • $curl – trzyma obiekt klasy Curl
  • $settings – trzyma ustawienia zdefiniowane przy tworzeniu obiektu Search_Google

oraz jedną stałą BASE_URL która trzyma podstawowy adres URL wyszukiwarki.

Pierwszym krokiem będzie stworzenie konstruktora i destruktora. W konstruktorze będziemy inicjalizować obiekt klasy Curl i zmieniać kilka ustawień.

Przy konstruktorze możemy spokojnie dodać więcej ustawień, np. konfiguracja proxy.

Przy destruktorze zwalniamy pamięć, ze względu na wycieki pamięci w PHP 5 jest to istotne gdy chcemy stworzyć obiekt Google_Search wiele razy. Przez błąd w silniku obiekt stworzony w obiekcie nie jest niszczony podczas usuwania rodzica. Z tego powodu zalecam też edytować klasę Curl i w funkcji close() dopisać $this->headers = null; (zgłaszałem to autorowi ale zbagatelizował problem).

Kolejną i najważniejszą funkcją będzie wchodzenie na kolejne podstrony wyników wyszukiwania i zapisywanie wyników do zmiennej:

 

Na koniec dodajemy metodę zamieniającą kod HTML na obiekt DOMXPath (do wygodnego operowania na kodzie HTML):

 

Cały kod można zobaczyć tutaj:

 

Na koniec pokażę jak tego używać. Wystarczy załączyć plik, stworzyć tablicę z ustawieniami i wywołać odpowiednią metodę.

W/w skrypt zwróci nam tablicę wyników:

google