Korzystanie z API Google Search Console za pomocą Pythona pozwala programowo pobierać dane o wydajności witryny, indeksowaniu i błędach. Najszybciej to zrobić, jeśli masz projekt w Google Cloud, włączoną API Search Console oraz odpowiednie poświadczenia (OAuth 2.0 lub konto serwisowe) i zainstalowane biblioteki Python.
Co potrzebujesz, zanim zaczynasz
- Konto Google dostęp do Google Search Console z dodaną witryną.
- Projekt w Google Cloud Console.
- Włączona usługa Search Console API w projekcie.
- Poświadczenia: konto użytkownika OAuth 2.0 lub konto serwisowe z dostępem do właściwości.
- Środowisko Python (np. venv) i zainstalowane biblioteki: google-api-python-client, google-auth-httplib2, google-auth-oauthlib.
Krok 1: Konfiguracja w Google Cloud i uprawnienia
- Utwórz projekt w Google Cloud Console lub wybierz istniejący.
- W sekcji „APIs & Services” włącz Google Search Console API.
- Utwórz poświadczenia:
- OAuth 2.0 Client ID dla interaktywnego uwierzytelniania (użytkownik korzysta z przeglądarki). Dodaj zakresy: https://www.googleapis.com/auth/webmasters.readonly.
- Lub konto serwisowe z kluczem JSON, jeśli aplikacja działa bez interakcji użytkownika.
- Udostępnij swoją właściwość w Search Console użytkownikowi z konta serwisowego (jeśli używasz konta serwisowego).
Krok 2: Instalacja bibliotek Python
- Zainstaluj pakiety:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib - Zweryfikuj wersje Pythona (co najmniej 3.7) i utwórz środowisko wirtualne dla izolacji projektu.
Krok 3: Autoryzacja i inicjalizacja klienta API
- Wybierz metodę autoryzacji:
- OAuth 2.0 – interaktywna logowanie: użytkownik loguje się w przeglądarce i przyznaje dostęp.
- Konto serwisowe – bez interakcji użytkownika: wykorzystuje klucz JSON.
- Przykładowy kod inicjalizacji (OAuth 2.0):
from google_auth_oauthlib.flow import InstalledAppFlow
from googleapiclient.discovery import build
SCOPES = ['https://www.googleapis.com/auth/webmasters.readonly']
flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES)
creds = flow.run_local_server(port=0)
service = build('searchconsole', 'v1', credentials=creds)
Krok 4: Zapytania do API – pobieranie danych
- Wybierz właściwość (właściwość w Search Console to strona lub domena).
- Utwórz żądanie do odpowiedniego punktu końcowego API. Najczęściej używane:
- searchanalytics.query – dane o kluczowych statystykach wyszukiwania (impressions, clicks, ctr, position).
- sites.list – lista właściwości w koncie.
- Przykład zapytania o dane analityczne:
request = {
'startDate': '',
'endDate': '',
'dimensions': ['query']
}
response = service.searchanalytics().query(siteUrl='https://example.com', body=request).execute()
print(response)
Krok 5: Przetwarzanie wyników i obsługa błędów
- Sprawdź klucze w odpowiedzi JSON — typowe pola to rows, clicks, impressions, ctr, position.
- Dodaj obsługę błędów HTTP i limitów API (429, 403). Zaimplementuj prostą logikę ponownych prób z backoffem.
- W praktyce zapisuj dane do pliku CSV/JSON lub bazy danych, aby prowadzić analizy historyczne.
Krok 6: Bezpieczeństwo i dobre praktyki
- Nie udostępniaj kluczy API publicznie. Przechowuj je w bezpiecznym miejscu (np. zmienne środowiskowe, sekrety).
- Ogranicz zakresy uprawnień do minimum (readonly).
- Rotuj klucze i monitoruj logi dostępu w Google Cloud Console.
- Testuj na małej próbce danych przed pełnym uruchomieniem.
Najczęściej zadawane pytania (przegląd)
- Jak uzyskać autoryzację OAuth 2.0 dla aplikacji Python? - Użyj przepływu InstalledAppFlow z plikiem client secrets i uruchomienie serwera lokalnego do wygenerowania tokena.
- Czy można używać konta serwisowego do Google Search Console API? - Tak, jeśli właściwość w Search Console została udostępniona temu kontu serwisowemu.
- Jakie dane mogę pobierać z API? - Dane z raportu Search Analytics (statystyki wyszukiwania), lista właściwości, ustawienia filtrów itp.
- Jak obsługiwać limity i błędy API? - Implementuj backoff, ogranicz liczbę zapytań na sekundę i obsługuj błędy 429/403 z retry.
- Czy potrzebuję certyfikat SSL? - Połączenie HTTPS jest domyślnie używane przez bibliotekę Google API.
- Jak zautomatyzować eksport danych? - Użyj zadania CRON/Cloud Scheduler plus skryptu Pythona, który zapisuje dane do pliku lub bazy danych.
- Czy mogę uzyskać pełny zakres danych historycznych? - API pozwala na określenie zakresu dat; pamiętaj o limitach API i politykach Google.
- Jak testować zapytania bez ryzyka przekroczenia limitów? - Wykorzystaj środowisko testowe lub ogranicz liczbę żądań oraz dat w zapytaniach.