Warum vergleichen Sie Google und Bing Scraping?
Während Google die Suche mit über 90% Marktanteil weltweit dominiert, hält Bing einen erheblichen Anteil an spezifischen Märkten: etwa 9% in den Vereinigten Staaten, höher bei Unternehmensnutzern, und es macht Suchergebnisse für DuckDuckGo, Yahoo und Ecosia. Für eine umfassende SERP-Überwachung gibt Ihnen das Tracking beider Suchmaschinen eine umfassendere Sicht auf Ihre organische Sicht.
Die technischen Unterschiede zwischen Google und Bing sind beträchtlich. Jede Suchmaschine hat verschiedene HTML-Strukturen, Anti-Bot-Schutz, Geschwindigkeitsbegrenzung und Proxy-Anforderungen. Diese Anleitung bricht diese Unterschiede, so dass Sie Schaber bauen können, die für beide zuverlässig arbeiten.
Für grundlegende SERP-Schrottkonzepte starten Sie mit unseren SERP Schrott mit Proxies-Führung.
Anti-Bot-Schutz-Vergleich
Der größte Unterschied zwischen Google und Bing-Schrott ist, wie aggressiv jede Suchmaschine automatisierte Anfragen erkennt und blockiert.
| Nachweismethode | ||
|---|---|---|
| IP-Rate Begrenzung | Sehr aggressiv — Blöcke nach ~10-20 Abfragen/Stunde pro IP | Moderate — toleriert ~30-50 Abfragen/Stunde pro IP |
| Herausforderungen von CAPTCHA | Häufige reCAPTCHA auf verdächtigen IPs | Weniger häufig, einfachere Herausforderungen |
| Datencenter-IP-Erkennung | Blockiert aktive bekannte Rechenzentrenbereiche | Weniger streng — Rechenzentren arbeiten oft |
| Browser Fingerabdruck | Erweiterte TLS/JS Fingerabdrücke | Basic Header und User-Agent-Checks |
| Verhaltensanalyse | Hervorragende Mustererkennung | Weniger anspruchsvoll |
| Durchsetzung von Cookies | Verfolgen und validieren von Cookies | Weniger auf Cookie-Verhalten angewiesen |
Die Schlüsselannahme: Bing ist wesentlich einfacher zu kratzen als Google. Sie können oft Datacenter-Proxies für Bing bei moderaten Bänden verwenden, während Google fast immer Wohn-Proxies für zuverlässige Ergebnisse benötigt.
HTML Struktur Unterschiede
Google und Bing verwenden völlig verschiedene HTML-Strukturen für ihre Suchergebnisse, die separate Parsing-Logik erfordern.
Google SERP Struktur
# Google organic result selectors
# Container: div#search .g
# Title: h3
# URL: a[href]
# Snippet: .VwiC3b or div[data-snf]
from bs4 import BeautifulSoup
def parse_google(html):
soup = BeautifulSoup(html, "html.parser")
results = []
for g in soup.select("div#search .g"):
title = g.select_one("h3")
link = g.select_one("a")
snippet = g.select_one(".VwiC3b")
if title and link:
results.append({
"title": title.get_text(),
"url": link["href"],
"snippet": snippet.get_text() if snippet else "",
})
return resultsGoogle SERP Struktur
# Bing organic result selectors
# Container: li.b_algo
# Title: h2 a
# URL: cite
# Snippet: p.b_lineclamp2 or div.b_caption p
def parse_bing(html):
soup = BeautifulSoup(html, "html.parser")
results = []
for item in soup.select("li.b_algo"):
title_el = item.select_one("h2 a")
snippet_el = item.select_one("p.b_lineclamp2") or item.select_one("div.b_caption p")
cite_el = item.select_one("cite")
if title_el:
results.append({
"title": title_el.get_text(),
"url": title_el["href"],
"snippet": snippet_el.get_text() if snippet_el else "",
"display_url": cite_el.get_text() if cite_el else "",
})
return resultsSERP Feature Vergleich
Beide Suchmaschinen zeigen reiche SERP-Features über Standard-Blue-Links, aber sie unterscheiden sich in Format und Frequenz:
| Merkmal | ||
|---|---|---|
| Vorgestellter Snippet | Gemeinsam — div.xpdopen | Weniger häufig — div.b_ans |
| Menschen auch Fragen | Sehr häufig — div.related-question-pair | Präsentiert als "Menschen auch fragen" — div.b_rs |
| Lokale Verpackung | Karte mit 3 Ergebnissen — div.VkpGBb | Karte mit Listen — div.b_localA |
| Wissenstafel | rechte Seitenleiste — div.kp-wholepage | rechte Seitenleiste — div.b_entityTP |
| Bild Karussell | Top oder Inline — div.ULSxyf | Top — div.imgpt |
| Video-Ergebnisse | Carousel Format | Grid-Format — div.b_vidAns |
| Ähnliche Suchanfragen | Bottom — div.s75CSd | Boden und Seitenleiste — div.b_rs |
Kompletter Dual-Engine-Schraper
Hier ist ein einheitlicher Python-Schrotter, der sowohl Google als auch Bing behandelt:
import requests
from bs4 import BeautifulSoup
import time
import random
import json
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",
]
def scrape_serp(keyword, engine="google", country="us"):
"""Scrape SERP from Google or Bing."""
proxies = {"http": PROXY_URL, "https": PROXY_URL}
headers = {
"User-Agent": random.choice(USER_AGENTS),
"Accept-Language": "en-US,en;q=0.9",
"Accept": "text/html,application/xhtml+xml",
}
if engine == "google":
url = "https://www.google.com/search"
params = {"q": keyword, "num": 10, "hl": "en", "gl": country}
else:
url = "https://www.bing.com/search"
params = {"q": keyword, "count": 10, "cc": country}
response = requests.get(
url,
params=params,
headers=headers,
proxies=proxies,
timeout=15,
)
response.raise_for_status()
soup = BeautifulSoup(response.text, "html.parser")
if engine == "google":
return parse_google_results(soup)
else:
return parse_bing_results(soup)
def parse_google_results(soup):
results = []
for i, g in enumerate(soup.select("div#search .g"), 1):
title = g.select_one("h3")
link = g.select_one("a")
snippet = g.select_one(".VwiC3b")
if title and link:
results.append({
"position": i,
"title": title.get_text(),
"url": link["href"],
"snippet": snippet.get_text() if snippet else "",
})
return results
def parse_bing_results(soup):
results = []
for i, item in enumerate(soup.select("li.b_algo"), 1):
title_el = item.select_one("h2 a")
snippet_el = item.select_one("p.b_lineclamp2") or item.select_one("div.b_caption p")
if title_el:
results.append({
"position": i,
"title": title_el.get_text(),
"url": title_el["href"],
"snippet": snippet_el.get_text() if snippet_el else "",
})
return results
# Compare rankings across both engines
keyword = "best web scraping proxies"
google_results = scrape_serp(keyword, "google")
time.sleep(random.uniform(3, 6))
bing_results = scrape_serp(keyword, "bing")
print(f"\n=== Google Results for '{keyword}' ===")
for r in google_results[:5]:
print(f" #{r['position']}: {r['title']}")
print(f"\n=== Bing Results for '{keyword}' ===")
for r in bing_results[:5]:
print(f" #{r['position']}: {r['title']}")Node.js Dual-Engine Scraper
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 scrapeSERP(keyword, engine = 'google') {
const config = engine === 'google'
? { url: 'https://www.google.com/search', params: { q: keyword, num: 10, hl: 'en', gl: 'us' } }
: { url: 'https://www.bing.com/search', params: { q: keyword, count: 10 } };
const { data } = await axios.get(config.url, {
params: config.params,
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);
if (engine === 'google') {
return parseGoogle($);
}
return parseBing($);
}
function parseGoogle($) {
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;
}
function parseBing($) {
const results = [];
$('li.b_algo').each((i, el) => {
const titleEl = $(el).find('h2 a');
const title = titleEl.text();
const url = titleEl.attr('href');
const snippet = $(el).find('p.b_lineclamp2').text() || $(el).find('div.b_caption p').text();
if (title && url) results.push({ position: i + 1, title, url, snippet });
});
return results;
}
async function compareEngines(keyword) {
const [google, bing] = await Promise.all([
scrapeSERP(keyword, 'google'),
scrapeSERP(keyword, 'bing'),
]);
console.log(`\nGoogle (${google.length} results):`);
google.slice(0, 5).forEach(r => console.log(` #${r.position}: ${r.title}`));
console.log(`\nBing (${bing.length} results):`);
bing.slice(0, 5).forEach(r => console.log(` #${r.position}: ${r.title}`));
}
compareEngines('residential proxy service');Proxy Anforderungen Vergleich
Die Proxystrategie für jeden Motor sollte sich aufgrund ihrer Erkennungsstufen unterscheiden:
Für Google
- Proxy-Typ: Residential-Proxis erforderlich für zuverlässige Ergebnisse
- Rotation: IP auf jeder Anfrage drehen
- Steuersatz 1-2 Anfragen pro Minute pro IP
- Kopf: Vollständiger Browser-ähnlicher Header mit Sec-Ch-Ua, Sec-Fetch-Headern
- Geotargeting: Passender Proxy-Standort mit gl/hl Parametern
Für Google
- Proxy-Typ: Datacenter-Proxies oft ausreichend; Wohnraum für Skala
- Rotation: Kann IPs für 3-5 Anfragen wiederverwenden, bevor Sie drehen
- Steuersatz 3-5 Anfragen pro Minute pro IP
- Kopf: Standard User-Agent und Akzeptieren Header in der Regel ausreichend
- Geotargeting: Verwenden Sie cc-Parameter; IP-Geomatching weniger kritisch
ProxyHat Wohnwagen optimal für beide Motoren arbeiten. Für Bing-nur Schrott mit moderatem Volumen, können Rechenzentren-Proxies genügen, aber Wohn-Proxies von ProxyHat bieten gleichbleibende Ergebnisse über beide Motoren ohne separate Infrastruktur. Refer Dokumentation für Setup-Details.
URL Parametervergleich
| Zweck | Google Parameter | Google-Parameter |
|---|---|---|
| Suchanfrage suchen | q | q |
| Ergebnisse pro Seite | num (10-100) | count (1-50) |
| Ergebnisverrechnung | start | first |
| Land | gl | cc |
| Sprache | hl | setlang |
| Sichere Suche | safe | safeSearch |
| Behinderte Personalisierung | pws=0 | N/A (weniger personalisiert standardmäßig) |
| Standort überride | uule | location |
Wann zu verfolgen beide Motoren
Das Tracking von Google und Bing ist in diesen Szenarien besonders wertvoll:
- Unternehmen: Bing hat durch Microsoft Edge und Windows-Integration einen höheren Marktanteil bei Unternehmensnutzern
- US-Marktfokus: Bing hält etwa 9% des US-Suchverkehrs, was Millionen potenzieller Besucher repräsentiert
- Sprachsuche: Bing Mächte Cortana und einige Sprachassistenten Ergebnisse
- Algorithm Vielfalt: Gutes Ranking bei Bing erfordert oft verschiedene Optimierungsstrategien als Google
- DuckDuckGo und Yahoo Verkehr: Beide nutzen Bings Index, so dass Bing Rankings diese Plattformen auch beeinflussen
Handling Edge Cases
Bing Market-Specific Domains
Im Gegensatz zu Google google.com mit gl Parameter für alle Länder, Bing hat landesspezifische Domänen:
# Bing country-specific URLs
BING_DOMAINS = {
"us": "https://www.bing.com/search",
"uk": "https://www.bing.co.uk/search",
"de": "https://www.bing.de/search",
"fr": "https://www.bing.fr/search",
"jp": "https://www.bing.co.jp/search",
}Verschiedene Pagination
# Google pagination: start parameter (0, 10, 20, ...)
google_page_2 = {"q": "query", "start": 10, "num": 10}
# Bing pagination: first parameter (1, 11, 21, ...)
bing_page_2 = {"q": "query", "first": 11, "count": 10}Der Aufbau eines mehrmotorigen SERP-Trackers mit einer einheitlichen Proxy-Infrastruktur ist der effizienteste Ansatz. ProxyHat Wohn-Proxies behandeln sowohl Google als auch Bing mit der gleichen Verbindung, vereinfachen Ihre Architektur und gewährleisten zuverlässige Ergebnisse von beiden Motoren.
Mehr zum Aufbau einer robusten Abstreifinfrastruktur finden Sie in unseren Guides auf mit Proxies in Python, mit Proxies in Node.jsund unsere Best-Proxis für Web-Schrott Übersicht. Überprüfung ProxyHat SERP Tracking-Lösungen für maßgeschneiderte Konfigurationen.





