Unter den zahlreichen Suchmaschinen, die heute verfügbar sind, ist Yandex ein wichtiger Akteur, insbesondere in Russland und den Nachbarländern. So wie Google viele Teile der Welt dominiert, hat Yandex einen bedeutenden Marktanteil in Russland. Schätzungen zufolge deckt das Unternehmen dort über 50 % des Suchmaschinenmarktes ab. Neben der Suche umfasst das Ökosystem von Yandex auch Dienste mit über 20 Produkten und Diensten (einschließlich Karten, E-Mail und Cloud-Speicher), die den unterschiedlichsten Benutzeranforderungen gerecht werden. Laut den neuesten Statistiken verarbeitet Yandex jeden Monat Milliarden von Suchanfragen und ist damit ein beliebtes Ziel für alle, die Yandex nach Daten durchsuchen möchten, ob Unternehmen, Forscher oder Datenenthusiasten.

Der manuelle Zugriff auf diese Datenmenge und deren Analyse kann jedoch zeitaufwändig und mühsam sein. Hier kommt Web Scraping Yandex ins Spiel. Durch die Verwendung von Python und dem Crawlbase Crawling APIkönnen wir den Prozess der Erfassung und Auswertung der Yandex-Suchergebnisse automatisieren und so wertvolle Erkenntnisse und Datenpunkte gewinnen, die als Grundlage für die Entscheidungsfindung und Recherche dienen können.

In diesem Handbuch tauchen wir tief in die Welt des Web Scraping ein und konzentrieren uns insbesondere darauf, wie man Yandex-Suchergebnisse scrapt. Egal, ob Sie die Struktur von Yandex verstehen, Ihre Umgebung für effizientes Scraping von Yandex einrichten oder die Scraping-Daten für spätere Analysen speichern möchten, dieses Handbuch deckt alles ab.

Inhaltsverzeichnis

  1. Warum Yandex-Suchergebnisse scrapen?
  • Vorteile der Yandex-Suchergebnisse
  • Praktische Anwendungen von Yandex-Daten
  1. Die Struktur von Yandex verstehen
  • Layout und Struktur der Yandex-Suchseiten
  • Zu extrahierende Schlüsseldatenpunkte
  1. Einrichten Ihrer Umgebung
  • Installieren von Python und erforderlichen Bibliotheken
  • Auswahl der richtigen Entwicklungs-IDE
  • Crawlbase-Registrierung und API-Token
  1. Abrufen und Analysieren von Suchergebnissen
  • Erstellen der URL für gezieltes Scraping
  • Erstellen von HTTP-Anfragen mit dem Crawling API
  • Untersuchen von HTML zum Abrufen von CSS-Selektoren
  • Extrahieren von Suchergebnisdetails
  • Umgang mit Paginierung
  1. Speichern der Scraped-Daten
  • Speichern von Scraped-Daten in einer CSV-Datei
  • Speichern von Scraped-Daten in einer SQLite-Datenbank
  1. Zusammenfassung
  2. Häufig gestellte Fragen

Warum Yandex-Suchergebnisse scrapen?

Wenn Sie etwas in Yandex eingeben und auf „Suchen“ klicken, erhalten Sie viele Ergebnisse. Haben Sie sich schon einmal gefragt, was Sie mit diesen Ergebnissen noch alles machen könnten? Hier kommt Scraping ins Spiel. Lassen Sie uns untersuchen, warum Scraping bei Yandex bahnbrechend sein kann.

Vorteile der Yandex-Suchergebnisse

Vorteile der Yandex-Suchergebnisse
  1. Trends erkennen: Yandex gibt uns Einblick in die Online-Trends. Durch die Untersuchung von Suchmustern können wir feststellen, welche Themen oder Produkte beliebt werden. Wenn beispielsweise im Oktober viele Leute nach „Winterjacken“ suchen, deutet dies darauf hin, dass die Wintereinkaufstrends früh beginnen.
  2. Kennen Sie Ihre Konkurrenz: Wenn Sie ein Unternehmen oder eine Website haben, möchten Sie wissen, wie Sie im Vergleich zu anderen abschneiden. Durch das Scraping von Yandex können Sie sehen, welche Websites bei Suchanfragen in Ihrem Bereich häufig auftauchen. Dies gibt Ihnen Einblicke, was andere richtig machen und wo Sie möglicherweise aufholen müssen.
  3. Content Creation: Sind Sie Blogger, Vlogger oder Autor? Wenn Sie wissen, wonach die Leute auf Yandex suchen, kann Ihnen das bei der Erstellung von Inhalten helfen. Wenn „einfache Keksrezepte“ im Trend liegen, ist es vielleicht an der Zeit, Ihr Lieblingskeksrezept zu teilen oder ein Video darüber zu machen.
  4. Verbessern Sie Ihre eigene Website: Jede Website möchte auf der ersten Seite von Yandex erscheinen. Websitebesitzer können ihren Inhalt optimieren, indem sie Suchmuster und beliebte Schlüsselwörter verstehen. Auf diese Weise haben sie eine bessere Chance, angezeigt zu werden, wenn jemand nach verwandten Themen sucht.

Praktische Anwendungen von Yandex-Daten

  • Preise vergleichen: Viele Leute vergleichen die Preise auf verschiedenen Websites, bevor sie etwas kaufen. Sie können diese Preisdaten sammeln und fundierte Entscheidungen treffen, indem Sie Yandex scrapen.
  • Forschen und Lernen: Für Schüler, Lehrer oder alle, die neugierig sind, können die Suchdaten von Yandex eine wahre Goldgrube sein. Sie können sich über die Interessen, Sorgen und Fragen von Menschen in verschiedenen Regionen informieren.
  • Nachrichten und Berichterstattung: Journalisten und Nachrichtenagenturen können Yandex-Daten verwenden, um zu verstehen, welche Nachrichtenthemen an Bedeutung gewinnen. Dies hilft ihnen, Geschichten zu priorisieren und Inhalte bereitzustellen, die bei den Lesern Anklang finden.

Zusammenfassend lässt sich sagen, dass die Suchergebnisse von Yandex mehr als nur eine Liste sind. Sie bieten wertvolle Einblicke in das, was Menschen online denken, suchen und wollen. Durch das Scraping und Analysieren dieser Daten können wir intelligentere Entscheidungen treffen, bessere Inhalte erstellen und im digitalen Spiel die Nase vorn behalten.

Die Struktur von Yandex verstehen

Wenn Sie Yandex aufrufen und eine Suchanfrage eingeben, wird Ihnen nicht zufällig eine Seite angezeigt. Sie ist auf eine bestimmte Weise gestaltet. Sehen wir uns kurz an, wie die Suchseite von Yandex aufgebaut ist und welche wesentlichen Dinge wir daraus entnehmen können.

Layout und Struktur der Yandex-Suchseiten

Stellen Sie sich vor, Sie lesen eine Zeitung. Oben stehen die Schlagzeilen, in der Mitte die Hauptartikel und an den Seiten einige Anzeigen oder Nebenartikel. Die Suchseite von Yandex funktioniert ähnlich.

Yandex-Suchergebnisse
  • Suchleiste: Hier geben Sie ein, wonach Sie suchen.
  • Suchergebnisse: Nach der Eingabe erhalten Sie eine Liste mit Websites, die mit Ihrer Suche in Zusammenhang stehen. Dies sind die wichtigsten Storys, wie die wichtigsten Nachrichtenartikel in einer Zeitung.
  • Nebeninformationen: Manchmal gibt es zusätzliche Informationen an der Seite. Dies können Anzeigen, verwandte Suchanfragen oder schnelle Antworten auf häufig gestellte Fragen sein.
  • Fußzeile: Unten finden Sie möglicherweise Links zu anderen Yandex-Diensten oder weitere Informationen zu Datenschutz und Nutzungsbedingungen.

Zu extrahierende Schlüsseldatenpunkte

Nachdem wir nun wissen, wie die Yandex-Seite aussieht, welche Informationen können wir daraus ableiten?

  1. Suchergebnisse: Das ist das Wichtigste, was wir wollen. Es ist eine Liste von Websites, die mit unserer Suche in Zusammenhang stehen. Beim Scraping würden wir uns darauf konzentrieren, diese Website-Links zu erhalten.
  2. Titel der Websites: Neben jedem Link steht ein Titel. Dieser Titel gibt einen schnellen Überblick darüber, worum es auf der Website geht.
  3. Website-Beschreibung: Unter dem Titel befindet sich normalerweise eine kurze Beschreibung oder ein Ausschnitt der Website. Dadurch können wir mehr über den Inhalt der Website erfahren, ohne darauf klicken zu müssen.
  4. Siehe Werbung: Manchmal können die ersten paar Ergebnisse Anzeigen sein. Das sind Websites, die Yandex bezahlt haben, um ganz oben angezeigt zu werden. Es ist gut zu wissen, welche Ergebnisse Anzeigen sind und welche organisch (nicht bezahlt) sind.
  5. Ähnliche Suchen: Unten auf der Seite werden möglicherweise weitere Suchvorschläge angezeigt, die mit Ihrer Eingabe in Zusammenhang stehen. Diese können Ihnen Anregungen für weitere Suchvorgänge oder verwandte Themen geben.

Wenn wir die Struktur von Yandex verstehen, wissen wir, wo wir beim Scraping suchen und worauf wir uns konzentrieren müssen. Wenn wir das Layout und die wichtigsten Datenpunkte kennen, können wir die benötigten Informationen effizienter sammeln.

Einrichten Ihrer Umgebung

Bevor wir die Suchergebnisse von Yandex scrapen, müssen wir sicherstellen, dass unser Setup bereit ist. Wir müssen die benötigten Tools und Bibliotheken installieren, die richtige IDE auswählen und die wichtigen API-Anmeldeinformationen abrufen.

Installieren von Python und erforderlichen Bibliotheken

  • Der erste Schritt beim Einrichten Ihrer Umgebung besteht darin, sicherzustellen, dass Python auf Ihrem System installiert ist. Wenn Sie Python noch installieren müssen, laden Sie es von der offiziellen Website unter herunter python.org.

  • Nachdem Sie Python installiert haben, müssen Sie im nächsten Schritt sicherstellen, dass Sie über die erforderlichen Bibliotheken für dieses Projekt verfügen. In unserem Fall benötigen wir drei Hauptbibliotheken:

    • Crawlbase Python-Bibliothek: Diese Bibliothek wird verwendet, um HTTP-Anfragen zur Yandex-Suchseite mithilfe der Crawlbase Crawling API. Zur Installation können Sie pip mit dem folgenden Befehl verwenden:
    1
    pip installieren crawlbase
    • Schöne Suppe 4: Beautiful Soup ist eine Python-Bibliothek, die das Scrapen und Parsen von HTML-Inhalten aus Webseiten erleichtert. Es ist ein wichtiges Tool zum Extrahieren von Daten aus dem Web. Sie können es mit pip installieren:
    1
    pip install beautifulsoup4
    • Pandas: Pandas ist eine leistungsstarke Datenmanipulations- und -analysebibliothek in Python. Wir werden sie zum Speichern und Verwalten der Scraped-Daten verwenden. Installieren Sie Pandas mit Pip:
    1
    Pandas installieren

Auswahl der richtigen Entwicklungs-IDE

Eine integrierte Entwicklungsumgebung (IDE) bietet eine Codierumgebung mit Funktionen wie Codehervorhebung, Autovervollständigung und Debugging-Tools. Sie können Python-Code zwar in einem einfachen Texteditor schreiben, eine IDE kann Ihre Entwicklungserfahrung jedoch erheblich verbessern.

Hier sind einige beliebte Python-IDEs, die Sie in Betracht ziehen sollten:

  1. PyCharm: PyCharm ist eine robuste IDE mit einer kostenlosen Community Edition. Sie bietet Funktionen wie Codeanalyse, einen visuellen Debugger und Unterstützung für die Webentwicklung.

  2. Visual Studio-Code (VS-Code): VS Code ist ein kostenloser, quelloffener Code-Editor, der von Microsoft entwickelt wurde. Seine umfangreiche Erweiterungsbibliothek macht ihn vielseitig für verschiedene Programmieraufgaben einsetzbar, einschließlich Web Scraping.

  3. Jupyter Notizbuch: Jupyter Notebook eignet sich hervorragend für interaktive Codierung und Datenexploration. Es wird häufig in Data-Science-Projekten verwendet.

  4. Spyder: Spyder ist eine IDE für wissenschaftliche und datenbezogene Aufgaben. Es bietet Funktionen wie einen Variablen-Explorer und eine interaktive Konsole.

Crawlbase-Registrierung und API-Token

So verwenden Sie die Crawlbase Crawling API Um HTTP-Anfragen an Yandex zu stellen, müssen Sie sich für ein Konto bei der Crawlbase-Website. Jetzt richten wir ein Crawlbase-Konto für Sie ein. Folgen Sie diesen Schritten:

  1. Besuchen Sie die Crawlbase-Website: Öffnen Sie Ihren Webbrowser und navigieren Sie zur Crawlbase-Website Registrieren Seite, um den Registrierungsprozess zu starten.
  2. Geben Sie Ihre Daten an: Sie werden aufgefordert, Ihre E-Mail-Adresse anzugeben und ein Passwort für Ihr Crawlbase-Konto zu erstellen. Geben Sie die erforderlichen Informationen ein.
  3. Verification: Nach dem Absenden Ihrer Daten müssen Sie möglicherweise Ihre E-Mail-Adresse bestätigen. Suchen Sie in Ihrem Posteingang nach einer Bestätigungs-E-Mail von Crawlbase und folgen Sie den bereitgestellten Anweisungen.
  4. Login: Sobald Ihr Konto verifiziert ist, kehren Sie zur Crawlbase-Website zurück und melden Sie sich mit Ihren neu erstellten Anmeldeinformationen an.
  5. Greifen Sie auf Ihr API-Token zu: Sie benötigen ein API-Token, um die Crawlbase zu verwenden Crawling API. Sie finden Ihre Token HIER.

Note: Crawlbase bietet zwei Arten von Token an, einen für statische Websites und einen für dynamische oder JavaScript-basierte Websites. Da wir Yandex scrapen, entscheiden wir uns für den Normal Token. Crawlbase bietet großzügigerweise ein anfängliches Kontingent von 1,000 kostenlosen Anfragen für den Crawling API, was es zu einer ausgezeichneten Wahl für unser Web-Scraping-Projekt macht.

Wenn Python und die erforderlichen Bibliotheken installiert sind, die IDE Ihrer Wahl eingerichtet ist und Sie Ihr Crawlbase-Token zur Hand haben, sind Sie gut vorbereitet, um mit dem Scraping der Yandex-Suchergebnisse zu beginnen.

Abrufen und Analysieren von Suchergebnissen

Der Vorgang des Scrapings von Yandex-Suchergebnissen umfasst mehrere Schritte, von der Erstellung der richtigen URL bis hin zur Handhabung dynamischer Inhalte. Dieser Abschnitt führt Sie durch jeden Schritt und stellt sicher, dass Sie einen klaren Plan haben, um Yandex-Suchergebnisse erfolgreich abzurufen und zu analysieren.

Erstellen der URL für gezieltes Scraping

Yandex bietet wie viele andere Suchmaschinen eine einfache Methode, um URLs für bestimmte Suchanfragen zu strukturieren. Wenn Sie diese Struktur verstehen, können Sie Ihren Scraping-Prozess so anpassen, dass Sie genau das erhalten, was Sie benötigen.

  • Grundstruktur: Eine typische Yandex-Such-URL beginnt mit der Hauptdomäne, gefolgt von den Suchparametern. Zum Beispiel:
1
2
# Ersetzen Sie your_search_query_here durch den gewünschten Suchbegriff.
https://yandex.ru/search/?text=your_search_query_here
  • Erweiterte Parameter: Yandex bietet verschiedene Parameter, die eine verfeinerte Suche ermöglichen. Einige gängige Parameter sind:
    • &lr=: Fügen Sie den Parameter „lr“ gefolgt vom Sprachcode hinzu, um nur Ergebnisse in dieser Sprache anzuzeigen.
    • &p=: Zur Paginierung, die Ihnen die Navigation durch verschiedene Ergebnisseiten ermöglicht.
  • Codierung: Stellen Sie sicher, dass die Suchanfrage richtig codiert ist. Dies ist besonders wichtig, wenn Ihre Suchbegriffe Sonderzeichen oder Leerzeichen enthalten. Sie können Python-Bibliotheken verwenden wie urllib.parse um diese Kodierung nahtlos zu handhaben.

Wenn Sie die Kunst beherrschen, URLs für gezieltes Scraping auf Yandex zu erstellen, sind Sie in der Lage, präzise und relevante Daten zu extrahieren und sicherzustellen, dass Ihre Scraping-Bemühungen wertvolle Erkenntnisse liefern.

Erstellen von HTTP-Anfragen mit dem Crawling API

Sobald wir unsere URL haben, besteht der nächste Schritt darin, den HTML-Inhalt der Suchergebnisseite abzurufen. Plattformen wie Yandex überwachen häufige Anfragen von derselben IP, was möglicherweise zu Einschränkungen oder Sperren führt. Hier kommt die Crawlbase ins Spiel. Crawling API glänzt und bietet mit seinem IP-Rotationsmechanismus eine Lösung.

Wir verwenden „Winterjacken“ als unsere Zielsuchanfrage. Unten sehen Sie einen Codeausschnitt, der zeigt, wie Sie die Crawling API:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
für Crawlbase importieren CrawlingAPI
für urllib.parse importieren Angebot!

API_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': API_TOKEN})

URL = f'https://yandex.com/search/?text=${Zitat("Winterjacken")}'

Antwort = crawling_api.get(URL)

if Antwort['Kopfzeilen']['pc_status'] == '200':
html_content = Antwort['Körper'].dekodieren('utf-8')
drucken(HTML-Inhalt)
sonst:
drucken(f"Seite konnte nicht abgerufen werden. Crawlbase-Statuscode: {Antwort['Kopfzeilen']['pc_status']}")

Ausführen des Skripts

Nachdem Sie sichergestellt haben, dass Ihre Umgebung eingerichtet ist und die erforderlichen Abhängigkeiten installiert sind, ist die Ausführung des Skripts ein Kinderspiel:

  1. Speichern Sie das Skript mit einem .py Erweiterung, zB yandex_scraper.py.
  2. Starten Sie Ihr Terminal oder Ihre Eingabeaufforderung.
  3. Navigieren Sie zu dem Verzeichnis, das das Skript enthält.
  4. Führen Sie das Skript aus mit: python yandex_scraper.py.

Durch die Ausführung dieses Skripts interagiert es mit Yandex, sucht nach „Winterjacken“ und zeigt den HTML-Inhalt in Ihrem Terminal an.

Ausgabe-HTML-Schnappschuss

Untersuchen von HTML zum Abrufen von CSS-Selektoren

Mit dem von der Suchergebnisseite erhaltenen HTML-Inhalt besteht der nächste Schritt darin, seine Struktur zu analysieren und den Speicherort der Preisdaten zu ermitteln. Bei dieser Aufgabe kommen uns Web- und Browser-Entwicklertools zu Hilfe. Lassen Sie uns skizzieren, wie Sie die HTML-Struktur überprüfen und diese wertvollen CSS-Selektoren freilegen können:

Yandex-Suchergebnisse prüfen
  1. Öffnen Sie die Webseite: Navigieren Sie zur Yandex-Such-URL, die Sie scrapen möchten, und öffnen Sie sie in Ihrem Webbrowser.
  2. Klicken Sie mit der rechten Maustaste und prüfen Sie: Klicken Sie mit der rechten Maustaste auf ein Element, das Sie extrahieren möchten, und wählen Sie im Kontextmenü „Untersuchen“ oder „Element untersuchen“. Dieser mystische Zauberspruch ruft die Entwicklertools des Browsers herauf.
  3. Suchen Sie die HTML-Quelle: Innerhalb der Grenzen der Entwicklertools wird der HTML-Quellcode der Webseite seine Geheimnisse preisgeben. Bewegen Sie den Cursor über verschiedene Elemente im HTML-Bedienfeld und erleben Sie, wie die entsprechenden Teile der Webseite wie von Zauberhand aufleuchten.
  4. Identifizieren von CSS-Selektoren: Um Daten aus einem bestimmten Element freizugeben, klicken Sie in den Entwicklertools mit der rechten Maustaste darauf und wählen Sie „Kopieren“ > „Selektor kopieren“. Mit diesem eleganten Manöver wird der CSS-Selektor für dieses Element in Ihre Zwischenablage übertragen, damit er für Ihre Web Scraping-Beschwörungen verwendet werden kann.

Sobald Sie über diese Selektoren verfügen, können Sie mit der Strukturierung Ihres Yandex-Scrapers fortfahren, um die erforderlichen Informationen effektiv zu extrahieren.

Extrahieren von Suchergebnisdetails

Python bietet praktische Tools zum Navigieren und Verstehen von Webinhalten, wobei BeautifulSoup eine herausragende Wahl ist.

Zuvor haben wir bestimmte Codes, sogenannte CSS-Selektoren, festgelegt, die wie Markierungen wirken und unser Programm genau zu den Daten leiten, die wir auf einer Webseite benötigen. Beispielsweise benötigen wir möglicherweise Details wie den Titel, die URL und die Beschreibung des Suchergebnisses. Auch wenn wir die Position eines Suchergebnisses nicht direkt abrufen können, können wir sie uns als Referenz notieren. So können wir unser vorheriges Skript aktualisieren und diese Details mit BeautifulSoup extrahieren:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
für urllib.parse importieren Angebot!
importieren JSON

# Initialisieren Sie die CrawlingAPI mit Ihrem API-Token
API_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': API_TOKEN})

def Seite_HTML abrufen(URL):
Antwort = crawling_api.get(URL)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren("utf-8")
sonst:
drucken(f"Anforderung fehlgeschlagen mit Crawlbase-Statuscode {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def scrape_yandex_search(HTML-Inhalt):
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')

# Extrahieren von Suchergebnisdetails
Suchergebnisse = []
für Position, Ergebnis in aufzählen(Suppe.Auswahl('.serp-Artikel'), start=1):
Titelelement = Ergebnis.Eine_Auswahl(„h2.organic__url-text“)
url_element = Ergebnis.select_one(„eine.organic__url“)
Beschreibungselement = Ergebnis.Eine_Auswahl(„div.organic__content-wrapper“)

Suchergebnis = {
'Position': Position,
‚Titel‘: Titelelement.get_text(Streifen=Wahre) if Titelelement sonst Keine,
'URL': URL-Element['href'] if URL-Element sonst Keine,
'Bezeichnung': Beschreibungselement.get_text(Streifen=Wahre) if Beschreibungselement sonst Keine,

}
Suchergebnisse.anhängen(Suchergebnis)

Rückkehr Suchergebnisse

def Haupt-
Suchanfrage = "Winterjacken"
URL = f'https://yandex.com/search/?text={quote(Suchabfrage)}'
html_content = fetch_page_html(url)

if HTML-Inhalt:
Suchergebnisse = scrape_yandex_search(html_content)
drucken(json.dumps(Suchergebnisse, Ensure_ASCII=falsch, Einzug=2))

if __name__ == "__hauptsächlich__":
Main()

Die fetch_page_html Die Funktion sendet eine HTTP-GET-Anfrage an die Suchergebnisseite von Yandex unter Verwendung der CrawlingAPI-Bibliothek und einer angegebenen URL. Wenn der Antwortstatuscode 200 lautet, was auf Erfolg hinweist, dekodiert sie den UTF-8 Antworttext und gibt den HTML-Inhalt zurück; andernfalls wird eine Fehlermeldung gedruckt und „None“ zurückgegeben.

Inzwischen hat die scrape_yandex_search Die Funktion verwendet BeautifulSoup, um den HTML-Inhalt der Yandex-Suchergebnisseite zu analysieren. Die Funktion durchläuft die Suchergebnisse, strukturiert die extrahierten Informationen und hängt sie an die search_results Liste. Abschließend gibt die Funktion die zusammengestellte Liste der Suchergebnisse zurück.

Die main Die Funktion ist wie ein Kontrollzentrum, das den Prozess des Abrufens und Organisierens der Yandex-Suchergebnisse für eine bestimmte Suchanfrage startet. Anschließend werden die gesammelten Ergebnisse in einem leicht lesbaren JSON-Format angezeigt.

Beispielausgabe:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
[
{
"Position": 1,
„Titel“: „Beste Winterjacken 2024 | Switchback Travel“,
"URL": „https://www.switchbacktravel.com/best-winter-jackets“,
„Beschreibung“: "Patagonia Tres 3-in-1 Parka (Winterjacke) Kategorie: Casual Füllung: 4.2 oz. Daunen mit 700er Füllkraft Gewicht: 2 lb."
},
{
"Position": 2,
„Titel“: „Winterjacket – zu einem günstigen Preis auf dem US-Markt kaufen“,
"URL": „https://market.yandex.ru/search?text=winter%20jacket“,
„Beschreibung“: „Winterjacket kaufen – 97 Exemplare – Neupreis, Lieferung innerhalb von 1–2 Stunden, Sie können innerhalb der Woche kaufen … ASICS Lite ShowWinterJacket. 15 ₽.“
},
{
"Position": 3,
„Titel“: "Amazon.com:WinterJacken",
"URL": „https://www.amazon.com/Winter-Jackets/s?k=Winter+Jackets“,
„Beschreibung“: "CAMEL CROWN Herren-Skijacke, wasserdicht, mit abnehmbarer Kapuze, winddichter Fleece-Parka, Regenjacke, Wintermantel."
},
{
"Position": 4,
„Titel“: „19 beste Winterjacken für Männer und Frauen (2023 RIESIG …“,
"URL": „https://www.thebrokebackpacker.com/best-winter-jackets/“,
„Beschreibung“: „Kurze Antwort: Dies sind die besten Winterjacken des Jahres 2023. Die besten Winterjacken des Jahres 2023. Nr. 1 – Beste Winterjacke für Männer insgesamt.“
},
{
"Position": 5,
„Titel“: „Die 29 besten Luxus-Winterjacken-Marken (2024)“,
"URL": „https://www.irreverentgent.com/best-luxury-winter-jacket-brands/“,
„Beschreibung“: „Wenn Sie bereit sind, in den kühleren Monaten endlich unaufhaltsam auszusehen und sich auch so zu fühlen, dann lesen Sie weiter, um die absolut besten Luxus- und Designer-Winterjackenmarken zu entdecken.“
},
{
"Position": 6,
„Titel“: „Die 14 besten Winterjacken für extreme Kälte in … – PureWow“,
"URL": „https://www.purewow.com/fashion/best-winter-jackets-for-extreme-cold“,
„Beschreibung“: „Für solche Gelegenheiten sollten Sie unbedingt einen dieser ultrawarmen Mäntel tragen. Diese Hightech-Oberteile sind die absolut besten Winterjacken für extreme Kälte …“
},
{
"Position": 7,
„Titel“: „Die besten Winterjacken 2024“,
"URL": „https://gearjunkie.com/apparel/best-winter-jackets“,
„Beschreibung“: „Neu für die Wintersaison 2023–2024 ist der Patagonia Stormshadow Parka (899 $) unsere neue Lieblings-Allround-Winterjacke.“
},
{
"Position": 8,
„Titel“: „Зимний пуховик длинныйWINTERJACKET173622027…“,
"URL": „https://www.WildBerries.ru/catalog/173622027/detail.aspx“,
„Beschreibung“: "Mehr. Weiterführende Liste. Winterjacke ещёПохожие слайд. Winterjacke Winterjacke. Цвет черный. Похожие. ... chollofaiber. Alle Merkmale und Beschreibungen wurden mitgeteilt.WINTERJACKET. Зимний пуховик длинный. 240 оценок.СкрытьЦена47614 761₽"
},
{
"Position": 9,
„Titel“: „Мужские зимние куртки – Im Internet-Magazin kaufen…“,
"URL": „https://www.Lamoda.ru/c/3816/clothes-men-winter-jackets/“,
„Beschreibung“: „Junge Kurzfilme mit kostenlosem Versand im Internet-Magazin London, aktuelle Preise, im Rahmen eines größeren Sortimentsmodells.“
},
{
"Position": 10,
„Titel“: „Die 27 besten Herren-Winterjacken des Jahres 2024, getestet und bewertet“,
"URL": „https://www.esquire.com/style/mens-fashion/g2014/best-winter-coats/“,
„Beschreibung“: „Egal, ob Sie auf der Suche nach einem wetterfesten Parka, einer warmen Pufferjacke oder einer kuscheligen Bomberjacke sind, wir haben die 27 besten und stilvollsten Wintermäntel gefunden, die Sie im Jahr 2024 kaufen können.“
},
{
"Position": 11,
„Titel“: „Die besten Herren-Winterjacken 2024, getestet und bewertet“,
"URL": „https://www.travelandleisure.com/style/best-mens-winter-jackets-and-coats“,
„Beschreibung“: „Unsere Outdoor-Experten haben verschiedene Winterjacken getestet, um die besten auf dem Markt zu finden.“
},
{
"Position": 12,
„Titel“: „Internet-Magazin, hergestellt in China. Versand aus China“,
"URL": "https://yabs.yandex.ru/count/WY0ejI_zOoVX2Ldb0PKG09DUSoOQbKgbKga4mOJVzd9dpvPERUREdOVQ-VeThpVSuJu0WmY71aD94b2LKlIGkC8eyXawmKA8-aA24KZOC9gHHEA6ab0D8QKWAWaYew0Hr2AX6K5raL1jhLA9HYmXeTW1KpOjV4b0Zy9MwJTigwHfy0467SSfd681sYaSbGAqqfn7ca-V-7G20Mmvur_ELyQULm-7HlDdzFc4IgNFwTDsubFd3RNjMlfqHczS6hsTzmrrIkqASB0y040anWelv_CD4ysO9GhJbxEpBd1Q3Ri3kgxhDNgLdDqh3XxgOdD5ugemQ4CKcKAdfjMVx2nicLaPdSBMKz1X9fGf85E98ME0qdKOSXD6_7MOxsGGAZNd1HksCDqGJJuK7PMqNLDlkUVL_DACJIxDsDnfAta_F65n_s3wCEv_VTlXz_gsmy_rROT_dy0NvMkPZdu_otJqOvezTv5P_bLIc4-aFB6Y6sbwV03S6-DTdO_2AHhiWHJfetSDabDWz7QfwCl-B8h8e2Vx8KR2iFoOzc03eF1LrVal4bhuYIDQ-4dMQtqRbnoOp6T3JCagakMrX_ZcTO-4aHi5ZWXONpxcIgLIQHMYmiwEqJ7GKvJV3OK8JOf-P6115FmOHOD-1Di4B0LMGBcwoDiu0PU_avPIsIX-yOculirKKE8GdZPMV7mKURvKt9lzxy-YsW_y45FEE6RWxamqY9C9~2?etext=2202.PsLaMsAcnPGXqEYDfwE_3RxouxkWkc56UM4sxhHfKtZicGpncGZuY3d2Y25lc2pi.0b887a5f2d86e1deffcb91bcf2515e203905de3b&from=yandex.com%3Bsearch%26%23x2F%3B%3Bweb%3B%3B0%3B&q=winter+jackets",
„Beschreibung“: „Versand mit chinesischem Recht. Mehr Auswahl. Garantiert. Bitte beachten! PRODUKTE.
}
]

Umgang mit Paginierung

Die Navigation durch mehrere Seiten ist beim Scraping von Yandex-Suchergebnissen eine häufige Herausforderung. Das Verständnis der Struktur der HTML-Elemente, die die Seitennavigation anzeigen, ist entscheidend. Normalerweise müssen Sie URLs für jede Seite dynamisch erstellen und Parameter wie Seitenzahlen entsprechend anpassen. Die Implementierung einer systematischen Iteration durch Seiten in Ihrem Skript gewährleistet eine umfassende Datenextraktion. Um die Effizienz zu optimieren und eine Überlastung der Yandex-Server zu verhindern, sollten Sie Verzögerungen zwischen den Anfragen einführen und verantwortungsvolle Web-Scraping-Praktiken einhalten. So können wir unser vorheriges Skript aktualisieren, um die Paginierung zu handhaben:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren Zeit

# Initialisieren Sie die CrawlingAPI mit Ihrem API-Token
API_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': API_TOKEN})
position_start = 1

def Seite_HTML abrufen(URL):
Antwort = crawling_api.get(URL)
if Antwort['Kopfzeilen']['pc_status'] == '200':
Rückkehr Antwort['Körper'].dekodieren("utf-8")
sonst:
drucken(f"Anforderung fehlgeschlagen mit Crawlbase-Statuscode {Antwort['Kopfzeilen']['pc_status']}")
Rückkehr Keine

def scrape_yandex_search(HTML-Inhalt):
globale position_start
Suppe = Schöne Suppe (HTML-Inhalt, 'html.parser')

# Extrahieren von Suchergebnisdetails
Suchergebnisse = []
für Position, Ergebnis in aufzählen(Suppe.Auswahl('.serp-Artikel'), start=position_start):
Titelelement = Ergebnis.Eine_Auswahl(„h2.organic__url-text“)
url_element = Ergebnis.select_one(„eine.organic__url“)
Beschreibungselement = Ergebnis.Eine_Auswahl(„div.organic__content-wrapper“)

Suchergebnis = {
'Position': Position,
‚Titel‘: Titelelement.get_text(Streifen=Wahre) if Titelelement sonst Keine,
'URL': URL-Element['href'] if URL-Element sonst Keine,
'Bezeichnung': Beschreibungselement.get_text(Streifen=Wahre) if Beschreibungselement sonst Keine,

}
Suchergebnisse.anhängen(Suchergebnis)

position_start = position + 1

Rückkehr Suchergebnisse

def Haupt-
Basis-URL = f'https://yandex.com/search/?text=${Zitat("Winterjacken")}&p='
Seitennummer = 0
alle_Suchergebnisse = []

# Begrenzung der Paginierungstiefe auf 6 Seiten
# Sie können das Limit nach Bedarf ändern
während Seitenzahl <= 5:
URL = Basis-URL + str(Seitenzahl)
html_content = fetch_page_html(url)

if HTML-Inhalt:
Suchergebnisse = scrape_yandex_search(html_content)
all_search_results.extend(Suchergebnisse)

Seitenzahl += 1
# Führen Sie eine Verzögerung ein, um den Server der Website zu respektieren
Zeit.Schlaf(2)

# alle Suchergebnisse weiterverarbeiten

if __name__ == "__hauptsächlich__":
Main()

Das Skript durchläuft mehrere Seiten mithilfe einer While-Schleife und ruft den HTML-Inhalt für jede Seite ab. Um den Server der Website zu respektieren, wird zwischen den Anfragen eine Verzögerung von 2 Sekunden eingeführt. Die Suchergebnisse werden dann extrahiert und im all_search_results Liste. Dieser systematische Ansatz stellt sicher, dass das Skript durch verschiedene Seiten navigiert, den HTML-Inhalt abruft und Suchergebnisse sammelt, wobei die Paginierung während des Scraping-Prozesses effektiv gehandhabt wird.

Speichern der Scraped-Daten

Nach dem erfolgreichen Scraping von Daten aus den Suchergebnissen von Yandex besteht der nächste entscheidende Schritt darin, diese wertvollen Informationen für zukünftige Analysen und Referenzzwecke zu speichern. In diesem Abschnitt werden wir zwei gängige Methoden zur Datenspeicherung untersuchen: das Speichern der Scraping-Daten in einer CSV-Datei und das Speichern in einer SQLite-Datenbank. Mit diesen Methoden können Sie Ihre Scraping-Daten effizient organisieren und verwalten.

Speichern von Scraped-Daten in einer CSV-Datei

CSV ist ein weit verbreitetes Format zum Speichern tabellarischer Daten. Es ist eine einfache und für Menschen lesbare Möglichkeit, strukturierte Daten zu speichern, und eignet sich daher hervorragend zum Speichern Ihrer ausgelesenen Yandex-Suchergebnisdaten.

Wir erweitern unser bisheriges Web Scraping-Skript um einen Schritt zum Speichern der Scraped-Daten in einer CSV-Datei mithilfe der beliebten Python-Bibliothek Pandas. Hier ist eine aktualisierte Version des Skripts:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren Pandas as pd
importieren Zeit

# Initialisieren Sie die CrawlingAPI mit Ihrem API-Token
API_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': API_TOKEN})
position_start = 1

def Seite_HTML abrufen(URL):
# ... (unverändert)

def scrape_yandex_search
# ... (unverändert)

def Haupt-
Basis-URL = f'https://yandex.com/search/?text=${Zitat("Winterjacken")}&p='
Seitennummer = 0
alle_Suchergebnisse = []

# Begrenzung der Paginierungstiefe auf 6 Seiten
# Sie können das Limit nach Bedarf ändern
während Seitenzahl <= 5:
URL = Basis-URL + str(Seitenzahl)
html_content = fetch_page_html(url)

if HTML-Inhalt:
Suchergebnisse = scrape_yandex_search(html_content)
all_search_results.extend(Suchergebnisse)

Seitenzahl += 1
# Führen Sie eine Verzögerung ein, um den Server der Website zu respektieren
Zeit.Schlaf(2)

# Gescrapte Daten als CSV-Datei speichern
df = pd.DataFrame(alle_Suchergebnisse)
df.to_csv(„yandex_search_results.csv“, Index=falsch)

if __name__ == "__hauptsächlich__":
Main()

In diesem aktualisierten Skript haben wir Pandas eingeführt, eine leistungsstarke Bibliothek zur Datenmanipulation und -analyse. Nach dem Scraping und Sammeln der Suchergebnisse im all_search_results Liste erstellen wir aus diesen Daten einen Pandas DataFrame. Dann verwenden wir die to_csv Methode, um den DataFrame in einer CSV-Datei mit dem Namen „yandex_search_results.csv“ im aktuellen Verzeichnis zu speichern. Einstellung index=False stellt sicher, dass wir den Index des DataFrame nicht als separate Spalte in der CSV-Datei speichern.

yandex_search_results.csv Datei-Schnappschuss:

Ausgabe eines CSV-Datei-Schnappschusses

Speichern von Scraped-Daten in einer SQLite-Datenbank

Wenn Sie einen strukturierteren und abfragefreundlicheren Ansatz zur Datenspeicherung bevorzugen, ist SQLite eine leichte, serverlose Datenbank-Engine, die eine gute Wahl sein kann. Sie können eine Datenbanktabelle erstellen, um Ihre Scraped-Daten zu speichern, was einen effizienten Datenabruf und eine effiziente Datenbearbeitung ermöglicht. So können Sie das Skript ändern, um Daten in einer SQLite-Datenbank zu speichern:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
für Crawlbase importieren CrawlingAPI
für bs4 importieren BeautifulSuppe
importieren sqlite3
importieren Zeit

# Initialisieren Sie die CrawlingAPI mit Ihrem API-Token
API_TOKEN = 'IHR_CRAWLBASE_TOKEN'
crawling_api = CrawlingAPI({'Zeichen': API_TOKEN})
position_start = 1

def Seite_HTML abrufen(URL):
# ... (unverändert)

def scrape_yandex_search
# ... (unverändert)

def Datenbank initialisieren
# SQLite-Datenbank erstellen oder Verbindung mit ihr herstellen
Verbindung = sqlite3.connect('Suchergebnisse.db')
Cursor = conn.cursor()

# Erstellen Sie eine Tabelle zum Speichern der Suchergebnisse
Cursor.ausführen('' '
Tabelle erstellen, wenn nicht vorhanden Suchergebnisse (
Titel TEXT,
URL-TEXT,
Beschreibung TEXT,
Position INTEGER
)
'' ')

# Änderungen übernehmen und die Datenbankverbindung schließen
conn.commit()
conn.close()

def Suchergebnisse einfügen(Ergebnisliste):
# SQLite-Datenbank erstellen oder Verbindung mit ihr herstellen
Verbindung = sqlite3.connect('Suchergebnisse.db')
Cursor = conn.cursor()

# Erstellen Sie eine Liste von Tupeln aus den Daten
data_tuples = [(Ergebnis[‚Titel‘], Ergebnis['URL'], Ergebnis['Bezeichnung'], Ergebnis['Position']) für Folge in Ergebnisliste]

# Daten in die Tabelle „search_results“ einfügen
Cursor.executemany('' '
INSERT INTO search_results (Titel, URL, Beschreibung, Position)
WERTE (?, ?, ?, ?)
'' ', Datentupel)

conn.commit()
conn.close()

def Haupt-
Basis-URL = f'https://yandex.com/search/?text=${Zitat("Winterjacken")}&p='
Seitennummer = 0
alle_Suchergebnisse = []

# Initialisieren Sie die Datenbank
initialisieren_datenbank()

# Begrenzung der Paginierungstiefe auf 6 Seiten
# Sie können das Limit nach Bedarf ändern
während Seitenzahl <= 5:
URL = Basis-URL + str(Seitenzahl)
html_content = fetch_page_html(url)

if HTML-Inhalt:
Suchergebnisse = scrape_yandex_search(html_content)
all_search_results.extend(Suchergebnisse)

Seitenzahl += 1
# Führen Sie eine Verzögerung ein, um den Server der Website zu respektieren
Zeit.Schlaf(2)

# Fügen Sie die gescrapten Daten in die SQLite-Datenbank ein
insert_search_results(alle_Suchergebnisse)

if __name__ == "__hauptsächlich__":
Main()

Funktionen, initialize_database() und insert_search_results(result_list), befassen sich mit der Verwaltung einer SQLite-Datenbank. initialize_database() Funktion ist verantwortlich für das Erstellen oder Herstellen einer Verbindung zu einer Datenbankdatei namens search_results.db und Definieren einer Tabellenstruktur zur Speicherung der Suchergebnisse. insert_search_results(result_list) Funktion fügt die gescrapten Suchergebnisse in diese Datenbanktabelle ein Name als search_results.

search_results Tabellenübersicht:

Übersicht über die Suchergebnistabelle

Zusammenfassung

Dieser Leitfaden bietet die notwendigen Einblicke, um Yandex-Suchergebnisse mit Python und Crawlbase zu scrapen Crawling API. Wenn Sie Ihre Web Scraping-Reise fortsetzen, denken Sie daran, dass die Vielseitigkeit dieser Fähigkeiten über Yandex hinausgeht. Entdecken Sie unsere zusätzlichen Anleitungen für Plattformen wie Google und Bing, und erweitern Sie Ihr Fachwissen im Bereich Suchmaschinen-Scraping.

Hier sind einige andere Python-Anleitungen zum Web Scraping, die für Sie interessant sein könnten:

📜 So scrapen Sie Expedia

📜 Wie scrapt man Yelp

📜 So scrapen Sie Producthunt

📜 So scrapen Sie Bilder von DeviantArt

Wir verstehen, dass Web Scraping eine Herausforderung darstellen kann, und es ist wichtig, dass Sie sich unterstützt fühlen. Wenn Sie daher weitere Anleitung benötigen oder auf Hindernisse stoßen, zögern Sie bitte nicht, uns zu kontaktieren. Unsere engagiertes Team ist bestrebt, Sie bei Ihren Web-Scraping-Bemühungen zu unterstützen.

Häufig gestellte Fragen

F. Was ist Yandex?

Yandex ist eine führende Suchmaschine und wird als „Google Russlands“ bezeichnet. Es ist nicht nur eine Suchmaschine, sondern ein Technologieunternehmen, das verschiedene digitale Dienste anbietet, darunter unter anderem Suchfunktionen, Karten, E-Mail-Dienste und Cloud-Speicher. Yandex stammt ursprünglich aus Russland, hat seine Dienste jedoch auf Nachbarländer ausgeweitet und ist zu einem bedeutenden Akteur in der Technologiebranche geworden.

F: Warum sollte jemand die Suchergebnisse von Yandex scrapen wollen?

Es kann mehrere Gründe geben, warum jemand erwägt, Yandex-Suchergebnisse zu scrapen. Forscher möchten vielleicht Suchmuster analysieren, Unternehmen möchten Markteinblicke gewinnen und Entwickler möchten vielleicht Suchergebnisse in ihre Anwendungen integrieren. Durch das Scrapen von Suchergebnissen kann man das Nutzerverhalten verstehen, Trends verfolgen oder Tools erstellen, die auf Echtzeit-Suchdaten basieren.

Die Rechtmäßigkeit von Web Scraping hängt von verschiedenen Faktoren ab, darunter den Nutzungsbedingungen der Website. Yandex hat wie viele andere Suchmaschinen Richtlinien und Nutzungsbedingungen. Es ist wichtig, diese Bedingungen vor dem Scraping zu überprüfen und zu verstehen. Stellen Sie immer sicher, dass die Scraping-Aktivität die Nutzungsbedingungen von Yandex einhält. robots.txt Datei, überlastet ihre Server nicht und verletzt keine Urheberrechte oder Datenschutzgesetze. Im Zweifelsfall ist es ratsam, Rechtsberatung einzuholen oder alternative Methoden zu verwenden, um die erforderlichen Daten zu erhalten.

F: Wie kann ich verhindern, dass meine IP beim Scraping blockiert wird?

Die Blockierung Ihrer IP ist ein häufiges Problem beim Scraping von Websites. Tools wie Crawlbase Crawling API sind praktisch, um dieses Risiko zu mindern. Die API bietet IP-Rotation und wechselt automatisch zwischen mehreren IP-Adressen. Diese Funktion stellt sicher, dass Sie in einem kurzen Zeitraum nur wenige Anfragen von einer einzigen IP senden, wodurch die Wahrscheinlichkeit verringert wird, dass Sicherheitsmaßnahmen wie IP-Sperren ausgelöst werden. Darüber hinaus ist es wichtig, Verzögerungen zwischen den Anfragen einzubauen, Benutzeragenten zu verwenden und alle von der Website festgelegten Ratenbegrenzungsregeln einzuhalten, um einen reibungslosen Scraping-Prozess aufrechtzuerhalten