Cara mengikis data Google Trends menggunakan Python

Komentar: 0

Menggunakan Python dan Playwright untuk mengikis data dari Google Trends memungkinkan pemeriksaan mendetail tentang popularitas kata kunci dan pemantauan pergeseran tren dari waktu ke waktu. Pendekatan ini memberikan wawasan penting untuk analisis pemasaran.

Prasyarat

Sebelum masuk ke dalam kode, pastikan Anda telah menginstal alat berikut ini:

  • Python 3.7+;
  • Perpustakaan penulis naskah.

Anda dapat menginstal Playwright menggunakan pip:

pip install playwright

Untuk menggunakan Playwright dengan kode asinkron, Anda juga memerlukan pustaka asyncio, yang disertakan dalam Python 3.7+ secara default.

Mengkonfigurasi Playwright untuk bekerja dengan Google Trends

Kita akan menggunakan Playwright, alat otomatisasi peramban yang canggih, untuk menavigasi situs web Google Trends dan mengunduh file CSV yang berisi data tren. Tutorial ini akan memandu Anda melalui seluruh proses.

Instalasi Playwright

Pertama, pastikan Playwright sudah terinstal:

playwright install

Jika Anda tidak ingin menginstal semua peramban, Anda cukup menggunakan perintah ini untuk menginstal peramban kromium saja.

playwright install chromium

Konfigurasi proxy

Ketika mengikis platform seperti Google, yang secara aktif melawan aktivitas bot, menggunakan proksi sangatlah penting. Proksi memungkinkan rotasi IP, membantu mengurangi risiko diblokir. Dalam skrip kami, kami menggunakan proksi pribadi untuk merutekan permintaan kami.

proxy = {
    "server": "IP:PORT",
    "username": "your_username",
    "password": "your_password"
}

Ganti variabel IP, PORT, nama pengguna, dan kata sandi dengan data aktual dari server proxy Anda.

Proses langkah demi langkah untuk bekerja dengan Playwright

Dalam contoh ini, pertama-tama kita menavigasi ke google.com untuk mem-bypass blokir yang mungkin terjadi sebelum menuju ke halaman Google Trends. Hal ini dilakukan untuk meniru perilaku pengguna normal dan menghindari deteksi.

Langkah 1: Mempersiapkan diri untuk bekerja dengan Google Trends

Langkah ini melibatkan tindakan awal untuk mencegah ditandai dan diblokir oleh Google:

  • Meluncurkan peramban: ini melibatkan memulai contoh peramban Chromium yang dikonfigurasi dengan pengaturan proksi. Penggunaan proksi membantu mengurangi kemungkinan terdeteksi dengan menyamarkan aktivitas scraping sebagai penggunaan peramban biasa;
  • Menavigasi ke Google: dengan mengakses google.com terlebih dahulu, ini menyesuaikan sistem pelacakan Google dengan keberadaan yang dianggapnya sebagai pengguna baru. Langkah navigasi sederhana ini menurunkan kemungkinan aktivitas selanjutnya diklasifikasikan sebagai bot, sehingga menghindari pemblokiran langsung.
import asyncio
from playwright.async_api import Playwright, async_playwright

async def run(playwright: Playwright) -> None:
    # Meluncurkan browser dengan pengaturan proxy
    browser = await playwright.chromium.launch(headless=False, proxy={
        "server": "IP:PORT",
        "username": "your_username",
        "password": "your_password"
    })
    
    # Membuat konteks browser baru
    context = await browser.new_context()
    
    # Membuka halaman baru
    page = await context.new_page()
    
    # Mengunjungi Google untuk meniru penjelajahan normal
    await page.goto("https://google.com")

Langkah 2: Menavigasi dan mengunduh data dari Google Trends

Selanjutnya, navigasikan langsung ke halaman Google Trends di mana data yang diperlukan berada. Google Trends menyediakan opsi untuk mengunduh data secara langsung dalam format CSV, yang memudahkan proses ekstraksi. Otomatiskan tindakan mengklik tombol "Unduh" untuk memulai pengunduhan data. Hal ini memungkinkan ekstraksi data tren tanpa intervensi manual. Setelah tombol "Unduh" terlihat, otomatisasi harus dilanjutkan dengan mengklik tombol tersebut, untuk memulai pengunduhan file CSV yang berisi data tren yang dibutuhkan.

 # Menavigasi ke Google Trends
    await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
    
    # Menunggu tombol unduh dan mengkliknya
    async with page.expect_download() as download_info:
        await page.get_by_role("button", name="file_download").first.click()
    
    # Menangani unduhan
    download = await download_info.value
    print(download.suggested_filename)

Langkah 3: Menyimpan data dan mengakhiri sesi

File CSV yang diunduh secara otomatis disimpan di direktori tertentu pada perangkat lokal Anda.

 # Menyimpan file yang diunduh
    await download.save_as("/path/to/save/" + download.suggested_filename)

Contoh kode lengkap

Berikut adalah kode lengkap untuk mengunduh data Google Trends sebagai file CSV menggunakan Playwright:

import asyncio
import os
import re
from playwright.async_api import Playwright, async_playwright


async def run(playwright: Playwright) -> None:
   # Meluncurkan browser dengan pengaturan proxy
   browser = await playwright.chromium.launch(headless=False, proxy={
       "server": "IP:PORT",
       "username": "your_username",
       "password": "your_password"
   })

   # Membuat konteks browser baru
   context = await browser.new_context()

   # Buka halaman baru
   page = await context.new_page()

   # Kunjungi Google untuk menghindari deteksi
   await page.goto("https://google.com")

   # Buka Google Trends
   await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")

   # Klik tombol unduh
   async with page.expect_download() as download_info:
       await page.get_by_role("button", name=re.compile(r"file_download")).first.click()

   # Menyimpan file yang diunduh
   download = await download_info.value
   destination_path = os.path.join("path/to/save", download.suggested_filename)
   await download.save_as(destination_path)

   # Tutup konteks dan browser
   await context.close()
   await browser.close()


async def main() -> None:
   async with async_playwright() as playwright:
       await run(playwright)


asyncio.run(main())

Dengan mengikuti panduan ini, Anda bisa mengunduh data tren secara efisien, mengelola rotasi proksi, dan mem-bypass mekanisme proteksi bot. Untuk menghindari pemblokiran yang efektif, menggunakan server proxy yang andal sangatlah penting. Proksi residensial, yang menawarkan alamat IP dinamis dan tidak memerlukan konfigurasi rotasi, sangat direkomendasikan. Sebagai alternatif, proksi ISP statis juga efektif; beli jumlah IP yang diperlukan dan siapkan rotasi IP reguler dalam skrip Anda. Pilihan mana pun memastikan risiko pemblokiran dan captcha yang minimal, memfasilitasi pengikisan data yang lebih cepat dan lancar.

Komentar:

0 komentar