Google Arama Sonuçlarını Proxy'lerle Nasıl Scrape Edersiniz

Google SERP'leri konut proxylerini kullanarak nasıl yıkılacağını öğrenin. Python, Node.js'ta tam kod örnekleri ve organik sonuçlar çıkarmak için gidin, parçalar ve İnsanlar da verileri sorun.

Google Arama Sonuçlarını Proxy'lerle Nasıl Scrape Edersiniz

Google Arama Sonuçları Neden Yararlanıyor?

Google, günde 8.5 milyardan fazla arama yapar, arama motor sonuç sayfalarını (SERPs) web üzerinde en değerli rekabetçi zeka kaynağı yapar. Google arama sonuçları sizi organik sıralamalara erişimi sağlar, özellikli parçalara, İnsanlar da kutulara, yerel paketlere ve ücretli reklam yerleştirmelerine - tüm gerçek zamanlı olarak.

İsterseniz SERP izleme boru hatları veya Google sonuçlarına bir anahtar kelime araştırması yapmak, programmatik erişim, manuel olarak tamamlamak için saatlerce otomatik iş akışları almanızı sağlar. Ortak kullanım durumları şunları içerir:

  • Kendi anahtar kelime sıralamanızı piyasa genelinde takip et
  • Hedef sorgular için rakip görünürlüğü takip edin
  • Analyating SERP özellik dağılımı (snippets, görüntüler, videolar)
  • SEO araştırma ve içerik stratejisi için veri setleri inşa edin

Google SERP Yapısını Anlamak

Bir scraper yazmadan önce, bir Google sonuçları sayfasının anatomisini anlamanız gerekir. Modern bir SERP, bir düzine farklı sonuç türü üzerinde içerebilir:

Google SERP Yapısını Anlamak
Sonuç TipiCSS / Data MarkerAçıklama
Organik sonuçlar organik sonuçlardiv#search .gStandart mavi bağlantı sonuçları başlık, URL ve parçalar
Seçici parçalardiv.xpdopenYanıt kutusu organik sonuçlar üzerinde görüntülendi
İnsanlar da sorundiv.related-question-pairGenişletilmiş SSS tarzı soruları
Yerel paketdiv.VkpGBb3 yerel işletme listeleri ile Harita
Bilgi panelidiv.kp-wholepageEntity information sidebar
Ad resultsdiv.uEierdReklamları üst ve alt
Google, sınıf isimlerini sık sık değiştirir. . fall'inizi geri çekilmek için düzenli olarak test edin.

Hazırlanma ortamınızı yapılandırın

Google'ı güvenilir bir şekilde kazımak için, üç bileşene ihtiyacınız var: bir HTTP müşterisi, bir proxy bağlantısı ve bir HTML .. Aşağıda Python, Node.js ve Go kullanımında tam örnekler vardır. ProxyHat proxy.

Python Örnek

Önce bağımlılıkları yükleyin. The The The The The The The The ProxyHat Python SDK Proxy yapılandırmasını basitleştirir.

pip install requests beautifulsoup4
import requests
from bs4 import BeautifulSoup
proxy_url = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
proxies = {
    "http": proxy_url,
    "https": proxy_url,
}
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    "Accept-Language": "en-US,en;q=0.9",
}
def scrape_google(query, num_results=10):
    params = {
        "q": query,
        "num": num_results,
        "hl": "en",
        "gl": "us",
    }
    response = requests.get(
        "https://www.google.com/search",
        params=params,
        headers=headers,
        proxies=proxies,
        timeout=15,
    )
    response.raise_for_status()
    soup = BeautifulSoup(response.text, "html.parser")
    results = []
    for g in soup.select("div#search .g"):
        title_el = g.select_one("h3")
        link_el = g.select_one("a")
        snippet_el = g.select_one(".VwiC3b")
        if title_el and link_el:
            results.append({
                "title": title_el.get_text(),
                "url": link_el["href"],
                "snippet": snippet_el.get_text() if snippet_el else "",
            })
    return results
results = scrape_google("best residential proxies 2026")
for i, r in enumerate(results, 1):
    print(f"{i}. {r['title']}\n   {r['url']}\n")

Node.js Örnek

Kullanımı ProxyHat Node SDK Ve Cheerio parsing için:

npm install axios cheerio https-proxy-agent
const axios = require('axios');
const cheerio = require('cheerio');
const { HttpsProxyAgent } = require('https-proxy-agent');
const agent = new HttpsProxyAgent('http://USERNAME:PASSWORD@gate.proxyhat.com:8080');
async function scrapeGoogle(query) {
  const { data } = await axios.get('https://www.google.com/search', {
    params: { q: query, num: 10, hl: 'en', gl: 'us' },
    headers: {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
      'Accept-Language': 'en-US,en;q=0.9',
    },
    httpsAgent: agent,
    timeout: 15000,
  });
  const $ = cheerio.load(data);
  const results = [];
  $('div#search .g').each((i, el) => {
    const title = $(el).find('h3').text();
    const url = $(el).find('a').attr('href');
    const snippet = $(el).find('.VwiC3b').text();
    if (title && url) {
      results.push({ position: i + 1, title, url, snippet });
    }
  });
  return results;
}
scrapeGoogle('best residential proxies 2026').then(console.log);

Go Örnek

Kullanımı ProxyHat Go SDK Ve goquery:

package main
import (
    "fmt"
    "log"
    "net/http"
    "net/url"
    "github.com/PuerkitoBio/goquery"
)
func main() {
    proxyURL, _ := url.Parse("http://USERNAME:PASSWORD@gate.proxyhat.com:8080")
    client := &http.Client{
        Transport: &http.Transport{Proxy: http.ProxyURL(proxyURL)},
    }
    req, _ := http.NewRequest("GET", "https://www.google.com/search?q=best+residential+proxies&num=10&hl=en&gl=us", nil)
    req.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36")
    req.Header.Set("Accept-Language", "en-US,en;q=0.9")
    resp, err := client.Do(req)
    if err != nil {
        log.Fatal(err)
    }
    defer resp.Body.Close()
    doc, _ := goquery.NewDocumentFromReader(resp.Body)
    doc.Find("div#search .g").Each(func(i int, s *goquery.Selection) {
        title := s.Find("h3").Text()
        link, _ := s.Find("a").Attr("href")
        fmt.Printf("%d. %s\n   %s\n\n", i+1, title, link)
    })
}

Farklı SERP Özellikler

Tam bir scraper sadece organik sonuçlardan daha fazla çalışmalıdır. İşte en değerli SERP özellikleri için parsing desenleri.

Featured Snippets

# Python: Extract featured snippet
snippet_box = soup.select_one("div.xpdopen")
if snippet_box:
    featured = {
        "type": "featured_snippet",
        "text": snippet_box.get_text(strip=True),
        "source_url": snippet_box.select_one("a")["href"] if snippet_box.select_one("a") else None,
    }

İnsanlar da sorun

# Python: Extract PAA questions
paa_questions = []
for q in soup.select("div.related-question-pair"):
    question_text = q.select_one("span")
    if question_text:
        paa_questions.append(question_text.get_text(strip=True))

Yerel Paket Sonuçlar

# Python: Extract local pack
local_results = []
for item in soup.select("div.VkpGBb"):
    name = item.select_one(".dbg0pd")
    rating = item.select_one(".yi40Hd")
    local_results.append({
        "name": name.get_text() if name else "",
        "rating": rating.get_text() if rating else "",
    })

Google Blocks ve CAPTCHAs

Google, otomatik kazılara karşı aktif olarak savunuyor. Uygun altyapı proxy olmadan, düzinelerce istek içinde bloklarla karşılaşacaksınız. Anahtar savunma mekanizmaları şunları içerir:

  • Limitleme: Bir IP'den çok fazla talep 429 statü kodu tetikler
  • CAPTCHA sorunları: Google, otomasyonlarından şüphelendiğinde yenidenCAPTCHA'ya hizmet ediyor
  • IP itibarı: Datacenter IP aralıkları, konut IP'lerinden daha fazla inceleme alır
  • Tarayıcı parmak izi: Eksik veya tutarsız başlıklar bayrakları yükseltiyor

Detaylı anti-deteksiyon stratejileri için rehberimizi görün Yıkmadan kazınmadan ve Anti-bot sistemlerinin nasıl algılandığını nasıl algılar.

Önerilen Proxy Strategy

Konut temsilcileri, Google'ı kazımak için gereklidir. ProxyHat konut proxy Çeşitli milyonlarca IP'ye erişim sağlamak 190+ lokasyonIP'leri otomatik olarak ve geo- hedeflerinizi döndürmenize olanak sağlar. Anahtar yapılandırma ipuçları:

  • Rotate IPs her istekte – asla aynı IP'yi ardı ardı ardına Google sorguları için yeniden kullanmayın
  • İstekler arasında 2-5 saniye arasında rastgele gecikmeler ekleyin
  • Kullanıcınızı gerçek bir tarayıcı versiyonuna eşleştirin
  • Set Set Set Set hl ve gl parametreleri proxy konumunuzla tutarlı

Refer'e ProxyHat Belgeleri kimlik doğrulama kurulumu ve seans yönetimi için.

Bir Üretim Hazırlayıcısı

Bir senaryodan üretim hattına taşınmak yeniden deneme mantığı, yapısal çıktı ve izleme gerektirir. İşte Python scraper'in sertleştirilmiş bir versiyonu:

import requests
import time
import random
import json
from bs4 import BeautifulSoup
from datetime import datetime
PROXY_URL = "http://USERNAME:PASSWORD@gate.proxyhat.com:8080"
USER_AGENTS = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
]
def scrape_serp(query, location="us", retries=3):
    for attempt in range(retries):
        try:
            headers = {
                "User-Agent": random.choice(USER_AGENTS),
                "Accept-Language": "en-US,en;q=0.9",
                "Accept": "text/html,application/xhtml+xml",
            }
            response = requests.get(
                "https://www.google.com/search",
                params={"q": query, "num": 10, "hl": "en", "gl": location},
                proxies={"http": PROXY_URL, "https": PROXY_URL},
                headers=headers,
                timeout=15,
            )
            if response.status_code == 429:
                wait = (attempt + 1) * 10
                print(f"Rate limited. Waiting {wait}s...")
                time.sleep(wait)
                continue
            response.raise_for_status()
            soup = BeautifulSoup(response.text, "html.parser")
            # Check for CAPTCHA
            if "captcha" in response.text.lower() or soup.select_one("#captcha-form"):
                print(f"CAPTCHA detected. Retrying with new IP...")
                time.sleep(random.uniform(5, 10))
                continue
            return parse_serp(soup, query)
        except requests.RequestException as e:
            print(f"Attempt {attempt + 1} failed: {e}")
            time.sleep(random.uniform(2, 5))
    return None
def parse_serp(soup, query):
    results = {
        "query": query,
        "timestamp": datetime.utcnow().isoformat(),
        "organic": [],
        "featured_snippet": None,
        "paa": [],
    }
    # Organic results
    for i, g in enumerate(soup.select("div#search .g")):
        title_el = g.select_one("h3")
        link_el = g.select_one("a")
        snippet_el = g.select_one(".VwiC3b")
        if title_el and link_el:
            results["organic"].append({
                "position": i + 1,
                "title": title_el.get_text(),
                "url": link_el["href"],
                "snippet": snippet_el.get_text() if snippet_el else "",
            })
    # Featured snippet
    snippet_box = soup.select_one("div.xpdopen")
    if snippet_box:
        results["featured_snippet"] = snippet_box.get_text(strip=True)[:500]
    # People Also Ask
    for q in soup.select("div.related-question-pair span"):
        results["paa"].append(q.get_text(strip=True))
    return results
# Usage: scrape a list of keywords
keywords = ["best residential proxies", "proxy for web scraping", "serp tracking tools"]
all_results = []
for kw in keywords:
    result = scrape_serp(kw)
    if result:
        all_results.append(result)
    time.sleep(random.uniform(3, 7))  # Delay between keywords
# Save to JSON
with open("serp_results.json", "w") as f:
    json.dump(all_results, f, indent=2)

Scaling Your SERP Boater

Yüzlerce veya binlerce anahtar kelime izlerken, tek hazır kazı çok yavaş. Bu ölçekleme yaklaşımlarını düşünün:

  • Mevcut istekler: Asyncio (Python), işçi iplikleri (Node.js), veya goroutines (Go) paralel olarak birçok istek göndermek için
  • Queue tabanlı mimarlık: Anahtar kelimeler bir kuyruk (Redis, TavşanMQ) ve onları birden fazla işçi ile işlem
  • Proxy havuz yönetimi: ProxyHat rotasyonu otomatik olarak ele alır, ancak ihtiyaçlarınıza dayanan seans çubuğu yapılandırın
  • Sonuç kalibrasyon: Cache SERP verileri, bir süre içinde aynı sorgu için kırmızı taleplerden kaçınmak için

Bina ölçeklenebilir kazı sistemleri üzerine kapsamlı bir rehberlik için, dikkatimizi okuyun Web scrapingants için tam kılavuz.

Yasal ve Etik Bakışlar

Google'ın Hizmet Şartları otomatik erişimi kısıtlar. Google SERP'leri kazırken, bu yönergeleri takip edin:

  • Saygı oranı sınırlarına ve ezici Google'ın sunucularından kaçının
  • Yasal iş amaçları için verileri kullanın (SEO izleme, pazar araştırması)
  • Geçerli yasaları anlamadan ticari olarak çiğ SERP verilerini yeniden dağıtmayın
  • Google'ın ihtiyaçlarınızı karşılayan resmi API'leri kullanmayı düşünün
Her zaman web scraping ve veri toplama ile ilgili yerel yasalarınızı ölçeklendirmeden önce kontrol edin.

Başlamaya hazır mısınız?

148+ ülkede 50M+ konut IP'sine AI destekli filtreleme ile erişin.

Fiyatlandırmayı GörüntüleKonut Proxy'leri
← Bloga Dön