Cara Scraping Title dan Meta Description Gratis Pakai Python

Diki AtmodjoDiki Atmodjo
5 min read
Cover Image for Cara Scraping Title dan Meta Description Gratis Pakai Python

Tanpa dipungkiri lagi, kamu pasti tahu gimana repotnya kalau harus audit ribuan halaman website tapi budget SEO lagi tipis. Tools berbayar memang powerful, tapi kadang nggak feasible untuk project tertentu.

Tapi ada kabar baik! .. Bukan kulit manggis ada ekstraknya ya. Bukan!

Ini kabar baiknya: Python bisa jadi senjata alternatif buat kamu. Dengan beberapa baris script, kamu bisa scraping title tag dan meta description dari ribuan URL tanpa harus keluar biaya tambahan.

Problem: Handle Website dengan Ribuan Halaman, tapi Budget SEO Minim

Bayangin kamu baru handle website e-commerce baru tapi sudah punya ribuan produk. Task pertamanya: cek kualitas title tag dan meta description.

Masalahnya:

  • Free tool terbatas → extractor gratisan biasanya mentok di beberapa ratus URL.

  • Screaming Frog gratis → maksimal crawl 500 URLs. Kalau halaman ribuan, jelas nggak cukup. Sebenarnya cukup murah dengan budget kurang lebih 4-5 Rupiah juta per tahun. Tapi kalo proposal ditolak? Apa boleh buat.

  • Manual check? → Jelas nggak mungkin.

Solusinya: otomasi dengan Python. Gratis, fleksibel, dan bisa disesuaikan sama kebutuhan audit kamu.

Python Script untuk Title dan Meta Description Extractor

Berikut script yang bisa langsung kamu jalankan. Script ini menggunakan Playwright untuk load halaman, jadi cukup reliable bahkan untuk website yang heavily menggunakan JavaScript.

Kamu bisa akses code lengkapnya di github repository-ku.

Kamu juga perlu mempersiapkan file CSV dengan header url dan dibawahnya berisi daftar URL yang ingin kamu scrape.

File input CSV yang harus disiapkan

Penjelasan Script

Nah setelah kamu persiapkan script Python yang kamu ambil di repo github-ku, dan file CSV URL-mu, Mari kita bedah bagian per bagian supaya kamu paham dan bisa modifikasi sesuai kebutuhan.

Library yang Digunakan

Sebagai informasi penting sebelum execute script ini, ada beberapa library Python yang harus kamu install terlebih dulu di Python kamu.

  • pandas → dipakai buat baca CSV input (list URL) dan simpan hasil scraping ke file CSV output. Kalau kamu suka main data, ini sudah jadi library wajib.
  • asyncio → biar script jalan secara asynchronous. Alias, bisa scraping beberapa halaman sekaligus.
  • playwright.async_api → library untuk kontrol browser secara programmatic. Ini yang kita pakai buat load halaman dan ambil title/meta description.
  • tqdm.asyncio → progress bar biar scraping ribuan URL nggak bikin kamu bengong tanpa feedback.

Bagian Input & Output

input_csv = "file_input.csv"  
output_csv = "file_output.csv"  
  • input_csv: file yang berisi daftar URL (kolomnya minimal ada url).
  • output_csv: hasil scraping akan disimpan ke file ini.

Jadi workflow-nya: kamu siapin dulu CSV berisi URL → jalankan script → hasil langsung keluar.

Fungsi scrape_title_meta

Bagian inti scraping ada di sini:

1. Launch browser headless

browser = await playwright.chromium.launch(headless=True)

Mode headless artinya browser berjalan tanpa GUI, jadi lebih cepat dan ringan.

2. Context + user agent

context = await browser.new_context(user_agent="Mozilla/5.0 ...")

Ini sebagai bentuk penyamaran sebagai browser beneran. Banyak website yang nggak kasih respon penuh kalau user agent-nya kosong.

3. Open page dan visit URL

await page.goto(url, timeout=20000)  
await page.wait_for_load_state("domcontentloaded", timeout=15000)  

Kita tunggu sampai DOM ready, biar element title dan meta description pasti sudah available.

4. Ambil title

title = await page.title()

5. Ambil meta description

description_handle = await page.query_selector("meta[name='description']")  
if description_handle:  
    meta_description = await description_handle.get_attribute("content")  

Kalau nggak ada meta description, ya hasilnya kosong.

6. Error handling

except Exception as e:  
    return (url, "", f"Error: {str(e)}")  

Jadi kamu tetap tahu URL mana yang error.

Fungsi process_all

sem = asyncio.Semaphore(concurrency)

Semaphore ini dipakai buat batasi jumlah halaman yang di-scrape paralel. Misalnya concurrency=5, artinya hanya 5 halaman jalan bersamaan. Ini penting biar:

  • Nggak bikin laptop kamu nge-hang.
  • Nggak bikin website target “kaget” dengan terlalu banyak request.

Fungsi main

df_result = pd.DataFrame(scraped_data, columns=["url", "title", "meta_description"])  
df_result.to_csv(output_csv, index=False)  

Akhirnya hasil scraping kita simpan ke CSV. Tinggal buka di Excel atau Google Sheets buat analisa.

Ini contoh hasilnya setelah kamu import ke Google Sheets;

File output CSV hasil scraping title dan meta description dari Python script

Modifikasi yang Bisa Kamu Coba

Kalau kamu sudah nyaman dengan script dasar ini, kamu bisa lakukan beberapa modifikasi seperti:

  • Tambahkan kolom H1 atau canonical tag (query selector-nya gampang banget).
  • Simpan juga status code (200, 301, 404) untuk analisa technical SEO.
  • Tambahkan delay atau random sleep untuk lebih “ramah server”.
  • Host script kamu ini di cloud server dan jalankan cron jobs untuk melakukan scraping yang terjadwal.

Kapan Script Ini Cocok Dipakai?

  • Audit awal untuk website klien yang punya ribuan halaman.
  • Mau cek kualitas title & meta description competitor (asal jangan berlebihan, tetap ethical scraping ya).
  • Membuat dataset untuk riset keyword atau content gap.

Kalau project-nya makin besar dan butuh advanced feature (misalnya, render JavaScript heavy atau auto-crawl internal links), kamu bisa modifikasi sendiri jadi tools yang lebih advance. Mungkin next akan aku buat artikel khusus tentang crawling JavaScript-heavy website.

Penutup

Walaupun trafficnya gratis, tapi proses dari SEO itu memang kadang terasa mahal. Solusinya dengan mengoptimalkan Python, kita bisa hemat banyak biaya dan tetap dapat insight berharga.

Script sederhana ini bisa jadi titik awal buat kamu:

  • Ekstraksi title tag & meta description massal.
  • Belajar workflow asynchronous scraping.
  • Membuka pintu buat eksplorasi automasi SEO dengan Python lebih jauh.

Kalau kamu baru pertama kali dengar tentang Python, saya sarankan baca dulu artikel cara install Python di Windows atau artikel Python untuk SEO yang lain biar lebih mantap.

Artikel terkait
Cara Scraping Title dan Meta Description Gratis Pakai Python | Diki Atmodjo