Google Trends'ten veri çekmek için Python ve Playwright kullanmak, anahtar kelime popülerliğinin ayrıntılı bir şekilde incelenmesini ve zaman içindeki trend değişimlerinin izlenmesini sağlar. Bu yaklaşım, pazarlama analitiği için çok önemli bilgiler sağlar.
Koda dalmadan önce, aşağıdaki araçların yüklü olduğundan emin olun:
Playwright'ı pip kullanarak yükleyebilirsiniz:
pip install playwright
Playwright'ı asenkron kod ile kullanmak için, Python 3.7+'da varsayılan olarak bulunan asyncio kütüphanesine de ihtiyacınız olacaktır.
Google Trends web sitesinde gezinmek ve trend verilerini içeren CSV dosyalarını indirmek için güçlü bir tarayıcı otomasyon aracı olan Playwright'ı kullanacağız. Bu eğitim size tüm süreç boyunca rehberlik edecektir.
Öncelikle Playwright'ın kurulu olduğundan emin olun:
playwright install
Tüm tarayıcıları yüklemek istemiyorsanız, sadece chromium tarayıcısını yüklemek için bu komutu kullanın.
playwright install chromium
Google gibi bot faaliyetlerine aktif olarak karşı koyan platformları kazırken, proxy kullanmak çok önemlidir. Proxy'ler IP rotasyonunu mümkün kılarak engellenme riskini azaltmaya yardımcı olur. Kodumuzda, isteklerimizi yönlendirmek için özel proxy'ler kullanıyoruz.
proxy = {
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
}
IP, PORT, kullanıcı adı ve şifre değişkenlerini proxy sunucunuzdan gelen gerçek verilerle değiştirin.
Bu örnekte, Google Trends sayfasına gitmeden önce olası engellemeleri aşmak için ilk olarak google.com adresine gidiyoruz. Bu, normal kullanıcı davranışını taklit etmek ve tespit edilmekten kaçınmak için yapılır.
Bu adım, Google tarafından işaretlenmeyi ve engellenmeyi önlemek için ön işlemleri içerir:
import asyncio
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Tarayıcıyı proxy ayarlarıyla başlatma
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Yeni bir tarayıcı bağlamı oluşturma
context = await browser.new_context()
# Yeni bir sayfa açma
page = await context.new_page()
# Normal taramayı taklit etmek için Google'ı ziyaret etme
await page.goto("https://google.com")
Ardından, doğrudan gerekli verilerin bulunduğu Google Trends sayfasına gidin. Google Trends, verileri doğrudan CSV formatında indirmek için seçenekler sunar ve bu da çıkarma işlemini kolaylaştırır. Veri indirme işlemini başlatmak için "İndir" düğmesine tıklama eylemini otomatikleştirin. Bu, trend verilerinin manuel müdahale olmadan çıkarılmasını sağlar. "İndir" düğmesi görünür hale geldiğinde, otomasyon bu düğmeye tıklayarak gerekli trend verilerini içeren CSV dosyasının indirilmesini başlatmalıdır.
# Google Trendler'e gitme
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# İndirme düğmesini beklemek ve tıklamak
async with page.expect_download() as download_info:
await page.get_by_role("button", name="file_download").first.click()
# İndirme işleminin gerçekleştirilmesi
download = await download_info.value
print(download.suggested_filename)
İndirilen CSV dosyası otomatik olarak yerel cihazınızda belirtilen bir dizine kaydedilir.
# İndirilen dosyayı kaydetme
await download.save_as("/path/to/save/" + download.suggested_filename)
Playwright kullanarak Google Trends verilerini CSV dosyası olarak indirmek için eksiksiz kodu burada bulabilirsiniz:
import asyncio
import os
import re
from playwright.async_api import Playwright, async_playwright
async def run(playwright: Playwright) -> None:
# Tarayıcıyı proxy ayarlarıyla başlatma
browser = await playwright.chromium.launch(headless=False, proxy={
"server": "IP:PORT",
"username": "your_username",
"password": "your_password"
})
# Yeni bir tarayıcı bağlamı oluşturma
context = await browser.new_context()
# Yeni bir sayfa açın
page = await context.new_page()
# Tespit edilmekten kaçınmak için Google'ı ziyaret edin
await page.goto("https://google.com")
# Google Trendler'e gidin
await page.goto("https://trends.google.com/trends/explore?q=%2Fg%2F11bc6c__s2&date=now%201-d&geo=US&hl=en-US")
# İndir düğmesine tıklayın
async with page.expect_download() as download_info:
await page.get_by_role("button", name=re.compile(r"file_download")).first.click()
# İndirilen dosyayı kaydetme
download = await download_info.value
destination_path = os.path.join("path/to/save", download.suggested_filename)
await download.save_as(destination_path)
# Bağlamı ve tarayıcıyı kapatın
await context.close()
await browser.close()
async def main() -> None:
async with async_playwright() as playwright:
await run(playwright)
asyncio.run(main())
Bu kılavuzu izleyerek trend verilerini verimli bir şekilde indirebilir, proxy rotasyonunu yönetebilir ve bot koruma mekanizmalarını atlayabilirsiniz. Etkili engellemeden kaçınmak için güvenilir proxy sunucuları kullanmak çok önemlidir. Dinamik IP adresleri sunan ve rotasyon yapılandırmasına ihtiyaç duymayan konut proxy'leri şiddetle tavsiye edilir. Alternatif olarak, statik ISP proxy'leri de etkilidir; gerekli sayıda IP satın alın ve komut dosyanızda düzenli IP rotasyonu ayarlayın. Her iki seçenek de minimum engelleme ve captcha riski sağlayarak daha hızlı ve sorunsuz veri kazımayı kolaylaştırır.
Yorumlar: 0