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.
Sebelum masuk ke dalam kode, pastikan Anda telah menginstal alat berikut ini:
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.
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.
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
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.
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 ini melibatkan tindakan awal untuk mencegah ditandai dan diblokir oleh Google:
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")
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)
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)
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