Python kullanarak Google Trends verileri nasıl kazınır?

Yorumlar: 0

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.

Önkoşullar

Koda dalmadan önce, aşağıdaki araçların yüklü olduğundan emin olun:

  • Python 3.7+;
  • Oyun yazarı kütüphanesi.

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 ile çalışmak için Playwright'ı yapılandırma

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.

Playwright kurulumu

Ö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

Proxy yapılandırması

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.

Oyun Yazarı ile adım adım çalışma süreci

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.

Adım 1: Google Trendler ile çalışmaya hazırlanma

Bu adım, Google tarafından işaretlenmeyi ve engellenmeyi önlemek için ön işlemleri içerir:

  • Tarayıcıyı başlatma: Bu, proxy ayarlarıyla yapılandırılmış Chromium tarayıcısının bir örneğini başlatmayı içerir. Proxy kullanımı, kazıma faaliyetini normal tarayıcı kullanımı olarak gizleyerek tespit edilme olasılığını azaltmaya yardımcı olur;
  • Google'da gezinme: ilk olarak google.com'a erişerek, Google'ın izleme sistemlerini yeni bir kullanıcı olarak algıladığı varlığa alıştırır. Bu basit gezinme adımı, sonraki faaliyetlerin bot benzeri olarak sınıflandırılma olasılığını azaltır ve böylece anında engellemeyi önler.
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")

Adım 2: Google Trendler'de gezinme ve veri indirme

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)

Adım 3: Verileri kaydetme ve oturumu sonlandırma

İ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)

Tam kod örneği

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 yorumlar