Kurz gesagt: Dieser Leitfaden zeigt den Aufbau eines E-Commerce-Scrapers mithilfe der KI-gestützten Extraktion und der Pydantic-Datenmodelle von crawl4ai. Der Scraper ruft asynchron sowohl Produktlisten (Namen, Preise) als auch detaillierte Produktinformationen (Spezifikationen, Bewertungen) ab.
Müden Sie die Komplexität des traditionellen Web-Scrapings zur E-Commerce-Datenanalyse? Dieses Tutorial vereinfacht den Prozess mithilfe moderner Python-Tools. Wir nutzen crawl4ai für die intelligente Datenextraktion und Pydantic für eine robuste Datenmodellierung und -validierung.
Tokopedia, eine große indonesische E-Commerce-Plattform, dient uns als Beispiel. (Hinweis: Der Autor ist Indonesier und Nutzer der Plattform, aber nicht mit ihr verbunden.) Die Grundsätze gelten auch für andere E-Commerce-Websites. Dieser Scraping-Ansatz ist für Entwickler von Vorteil, die sich für E-Commerce-Analysen, Marktforschung oder automatisierte Datenerfassung interessieren.
Anstatt uns auf komplexe CSS-Selektoren oder XPath zu verlassen, nutzen wir die LLM-basierte Extraktion von crawl4ai. Das bietet:
Beginnen Sie mit der Installation der erforderlichen Pakete:
<code class="language-bash">%pip install -U crawl4ai %pip install nest_asyncio %pip install pydantic</code>
Für die asynchrone Codeausführung in Notebooks verwenden wir auch nest_asyncio
:
<code class="language-python">import crawl4ai import asyncio import nest_asyncio nest_asyncio.apply()</code>
Wir verwenden Pydantic, um die erwartete Datenstruktur zu definieren. Hier sind die Modelle:
<code class="language-python">from pydantic import BaseModel, Field from typing import List, Optional class TokopediaListingItem(BaseModel): product_name: str = Field(..., description="Product name from listing.") product_url: str = Field(..., description="URL to product detail page.") price: str = Field(None, description="Price displayed in listing.") store_name: str = Field(None, description="Store name from listing.") rating: str = Field(None, description="Rating (1-5 scale) from listing.") image_url: str = Field(None, description="Primary image URL from listing.") class TokopediaProductDetail(BaseModel): product_name: str = Field(..., description="Product name from detail page.") all_images: List[str] = Field(default_factory=list, description="List of all product image URLs.") specs: str = Field(None, description="Technical specifications or short info.") description: str = Field(None, description="Long product description.") variants: List[str] = Field(default_factory=list, description="List of variants or color options.") satisfaction_percentage: Optional[str] = Field(None, description="Customer satisfaction percentage.") total_ratings: Optional[str] = Field(None, description="Total number of ratings.") total_reviews: Optional[str] = Field(None, description="Total number of reviews.") stock: Optional[str] = Field(None, description="Stock availability.")</code>
Diese Modelle dienen als Vorlagen, stellen die Datenvalidierung sicher und sorgen für eine klare Dokumentation.
Der Schaber arbeitet in zwei Phasen:
Zuerst rufen wir Suchergebnisseiten ab:
<code class="language-python">async def crawl_tokopedia_listings(query: str = "mouse-wireless", max_pages: int = 1): # ... (Code remains the same) ...</code>
Als nächstes rufen wir für jede Produkt-URL detaillierte Informationen ab:
<code class="language-python">async def crawl_tokopedia_detail(product_url: str): # ... (Code remains the same) ...</code>
Schließlich integrieren wir beide Phasen:
<code class="language-python">async def run_full_scrape(query="mouse-wireless", max_pages=2, limit=15): # ... (Code remains the same) ...</code>
So führen Sie den Schaber aus:
<code class="language-bash">%pip install -U crawl4ai %pip install nest_asyncio %pip install pydantic</code>
cache_mode=CacheMode.ENABLED
).Dieser Schaber kann erweitert werden auf:
Die LLM-basierte Extraktion von crawl4ai verbessert die Wartbarkeit des Web Scraping im Vergleich zu herkömmlichen Methoden erheblich. Die Integration mit Pydantic gewährleistet Datengenauigkeit und -struktur.
Halten Sie sich vor dem Scrapen immer an die robots.txt
und Nutzungsbedingungen einer Website.
Das obige ist der detaillierte Inhalt vonErstellen eines asynchronen E-Commerce-Web-Scrapers mit Pydantic, Crawl & Gemini. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!