Logo

© 2026 Diki Atmodjo. All rights reserved.

Panduan Lengkap Scraping Google SERP Menggunakan Python dan SerpApi

Diki SucittoDiki Sucitto
••
5 min read
Cover Image for Panduan Lengkap Scraping Google SERP Menggunakan Python dan SerpApi

Google SERP (Search Engine Result Page) memiliki banyak data yang bisa kita "tambang" untuk riset SEO. Antara lain, ranking, fitur SERP, iklan PPC, dan snippet semuanya tersimpan di sana. Tantangannya terletak pada cara mengakses data tersebut secara konsisten tanpa terjebak dalam perawatan kode yang memakan waktu.

Tantangan Ekstraksi Data Google Search Secara Real-Time

Google tidak menyukai scraping. Sistem deteksi bot mereka semakin canggih setiap tahun. Berikut kendala nyata yang saya temui saat mencoba mengambil data SERP secara langsung.

Struktur HTML Google Search berubah tanpa pemberitahuan. Selector CSS class yang sebelumnya bekerja minggu lalu bisa gagal total hari ini.

Sistem rate limiting membuat scraping skala besar hampir mustahil tanpa infrastruktur proxy yang mahal. Google mendeteksi pola request yang tidak wajar dan memblokir IP address dalam hitungan menit.

Lokalisasi hasil pencarian menambah kompleksitas lain. Google menyajikan hasil berbeda berdasarkan lokasi geografis, bahasa browser, IP address dan riwayat pencarian. Mendapatkan data akurat untuk pasar spesifik membutuhkan konfigurasi yang tepat.

Persiapan Lingkungan Python dan Instalasi Library SerpApi

SerpApi menangani semua kerumitan teknis scraping. API ini mengelola proxy, memproses CAPTCHA, dan menyediakan data terstruktur dalam format JSON yang konsisten.

Pastikan Python 3.7 atau versi lebih baru sudah terinstal di sistem kamu. Buka terminal dan jalankan perintah berikut untuk menginstal library resmi SerpApi:

Terminal window
pip install google-search-results

Library ini menyediakan wrapper Python untuk semua endpoint SerpApi. Ukurannya ringan dan tidak membutuhkan dependensi tambahan yang berat.

Saya merekomendasikan penggunaan virtual environment untuk mengisolasi project:

Terminal window
python -m venv serpapi_env
source serpapi_env/bin/activate # Linux/Mac
serpapi_env\Scripts\activate # Windows
pip install google-search-results pandas

Pandas akan berguna nanti saat kamu perlu mengonversi data JSON menjadi DataFrame untuk analisis lebih lanjut.

Konfigurasi API Key dan Parameter Pencarian untuk Hasil Akurat

Daftar akun gratis di serpapi.com untuk mendapatkan API key pertama kamu. Akun gratis menyediakan 100 pencarian per bulan, cukup untuk eksperimen dan project kecil.

Simpan API key sebagai environment variable, bukan hardcode dalam skrip:

import os
from serpapi import GoogleSearch
api_key = os.environ.get("SERPAPI_KEY")
params = {
"engine": "google",
"q": "python seo automation",
"api_key": api_key,
"google_domain": "google.co.id",
"gl": "id",
"hl": "id",
"num": 100
}

Parameter google_domain dan gl sangat penting untuk riset SEO global. Kombinasi ini menentukan versi Google yang digunakan dan lokasi geografis hasil pencarian. Untuk riset pasar Indonesia, gunakan google.co.id dan gl: id. Untuk pasar Amerika, kombinasinya adalah google.com dan gl: us.

Parameter hl mengontrol bahasa antarmuka dan mempengaruhi beberapa aspek hasil pencarian. Parameter num menentukan jumlah hasil yang dikembalikan dalam satu request, maksimum 100 per halaman.

Eksekusi Skrip untuk Mengambil Data Organik, Iklan, dan Fitur SERP

Berikut skrip lengkap yang mendemonstrasikan integrasi library google-search-results:

from serpapi import GoogleSearch
import os
import json
def scrape_serp(keyword, location="id"):
params = {
"engine": "google",
"q": keyword,
"api_key": os.environ.get("SERPAPI_KEY"),
"google_domain": "google.co.id",
"gl": location,
"hl": "id",
"num": 10
}
search = GoogleSearch(params)
results = search.get_dict()
# Ekstrak hasil organik
organic_results = results.get("organic_results", [])
# Ekstrak iklan jika ada
ads = results.get("ads", [])
# Ekstrak featured snippet
featured_snippet = results.get("answer_box", {})
# Ekstrak People Also Ask
related_questions = results.get("related_questions", [])
return {
"organic": organic_results,
"ads": ads,
"featured_snippet": featured_snippet,
"related_questions": related_questions
}
# Contoh penggunaan
data = scrape_serp("technical seo indonesia")
print(json.dumps(data, indent=2))

Response JSON dari SerpApi sudah terstruktur rapi. Setiap hasil organik menyertakan title, link, snippet, position, dan metadata tambahan seperti displayed_link dan cached_page_link.

Fitur SERP seperti knowledge panel, local pack, dan image results juga tersedia dalam key terpisah. Struktur ini konsisten lintas semua pencarian, berbeda dengan scraping langsung yang harus mengantisipasi variasi layout.

Teknik Parsing Data JSON Menjadi Format DataFrame atau CSV

Data mentah JSON bagus untuk debugging, tetapi analisis skala besar membutuhkan format tabular. Pandas mengonversi hasil SerpApi menjadi DataFrame dalam beberapa baris kode:

import pandas as pd
from serpapi import GoogleSearch
import os
def serp_to_dataframe(keyword):
params = {
"engine": "google",
"q": keyword,
"api_key": os.environ.get("SERPAPI_KEY"),
"google_domain": "google.co.id",
"gl": "id",
"num": 100
}
search = GoogleSearch(params)
results = search.get_dict()
organic = results.get("organic_results", [])
# Ekstrak field yang relevan
processed = []
for item in organic:
processed.append({
"position": item.get("position"),
"title": item.get("title"),
"link": item.get("link"),
"domain": item.get("displayed_link"),
"snippet": item.get("snippet")
})
df = pd.DataFrame(processed)
return df
# Ekspor ke CSV
df = serp_to_dataframe("digital marketing indonesia")
df.to_csv("serp_results.csv", index=False)

Format CSV memudahkan analisis di spreadsheet atau integrasi dengan tools visualisasi data. Untuk project yang lebih besar, kamu bisa menyimpan langsung ke database SQL atau Google Sheets menggunakan library tambahan.

Perbandingan efisiensi cukup jelas di sini. Scraping manual dengan BeautifulSoup membutuhkan penulisan parser custom, penanganan error untuk berbagai edge case, dan maintenance berkelanjutan saat struktur HTML berubah. SerpApi mengabstraksi semua kompleksitas tersebut. Kamu menulis kode sekali, dan API menangani sisanya.

Etika Scraping dan Kepatuhan Terhadap Kebijakan Penggunaan Data

Menggunakan SerpApi tidak berarti kamu bebas dari tanggung jawab etis. Beberapa prinsip yang saya terapkan dalam setiap project scraping:

Rate limiting tetap penting meskipun API menangani throttling di sisi mereka. Jangan membombardir endpoint dengan ribuan request dalam hitungan detik. Selain memboroskan kuota, perilaku ini memberikan tekanan tidak perlu pada infrastruktur API.

Data hasil scraping harus digunakan sesuai tujuan yang sah. Riset kompetitor, tracking peringkat, dan analisis SERP untuk klien adalah penggunaan yang wajar. Menyalin konten orang lain atau membangun sistem spam bukan.

Hormati robots.txt dan Terms of Service platform yang kamu scrape. SerpApi menangani aspek teknis kepatuhan, tetapi tanggung jawab penggunaan data tetap di tangan kamu.

Simpan data dengan aman dan hapus informasi yang tidak lagi diperlukan. Regulasi privasi seperti GDPR berlaku juga untuk data yang dikumpulkan melalui scraping, terutama jika data tersebut mengandung informasi personal.

SerpApi menyediakan dokumentasi lengkap tentang batasan penggunaan dan best practices. Baca dokumentasi tersebut sebelum memulai project produksi.

Daftar akun gratis SerpApi sekarang untuk mendapatkan API key pertama kamu. Seratus pencarian gratis per bulan cukup untuk memvalidasi workflow dan membuktikan nilai data SERP untuk strategi SEO startup kamu.

Artikel terkait