Ringkasnya: Panduan ini menunjukkan membina pengikis e-dagang menggunakan pengekstrakan berkuasa AI dan model data Pydantic crawl4ai. Pengikis secara tidak segerak mendapatkan kedua-dua penyenaraian produk (nama, harga) dan maklumat produk terperinci (spesifikasi, ulasan).
Bosan dengan kerumitan pengikisan web tradisional untuk analisis data e-dagang? Tutorial ini memudahkan proses menggunakan alat Python moden. Kami akan memanfaatkan crawl4ai untuk pengekstrakan data pintar dan Pydantic untuk pemodelan dan pengesahan data yang mantap.
Tokopedia, platform e-dagang utama Indonesia, menjadi contoh kami. (Nota: Pengarang adalah warga Indonesia dan pengguna platform, tetapi tidak bergabung.) Prinsip ini terpakai pada tapak e-dagang lain. Pendekatan mengikis ini bermanfaat untuk pembangun yang berminat dalam analisis e-dagang, penyelidikan pasaran atau pengumpulan data automatik.
Daripada bergantung pada pemilih CSS kompleks atau XPath, kami menggunakan pengekstrakan berasaskan LLM crawl4ai. Ini menawarkan:
Mulakan dengan memasang pakej yang diperlukan:
<code class="language-bash">%pip install -U crawl4ai %pip install nest_asyncio %pip install pydantic</code>
Untuk pelaksanaan kod tak segerak dalam buku nota, kami juga akan menggunakan nest_asyncio
:
<code class="language-python">import crawl4ai import asyncio import nest_asyncio nest_asyncio.apply()</code>
Kami menggunakan Pydantic untuk mentakrifkan struktur data yang dijangkakan. Berikut ialah modelnya:
<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>
Model ini berfungsi sebagai templat, memastikan pengesahan data dan menyediakan dokumentasi yang jelas.
Pengikis beroperasi dalam dua fasa:
Pertama, kami mendapatkan semula halaman hasil carian:
<code class="language-python">async def crawl_tokopedia_listings(query: str = "mouse-wireless", max_pages: int = 1): # ... (Code remains the same) ...</code>
Seterusnya, untuk setiap URL produk, kami mendapatkan maklumat terperinci:
<code class="language-python">async def crawl_tokopedia_detail(product_url: str): # ... (Code remains the same) ...</code>
Akhir sekali, kami menyepadukan kedua-dua fasa:
<code class="language-python">async def run_full_scrape(query="mouse-wireless", max_pages=2, limit=15): # ... (Code remains the same) ...</code>
Berikut ialah cara untuk melaksanakan pengikis:
<code class="language-bash">%pip install -U crawl4ai %pip install nest_asyncio %pip install pydantic</code>
cache_mode=CacheMode.ENABLED
).Pengikis ini boleh dipanjangkan kepada:
Pengekstrakan berasaskan LLM crawl4ai dengan ketara meningkatkan kebolehselenggaraan mengikis web berbanding kaedah tradisional. Penyepaduan dengan Pydantic memastikan ketepatan dan struktur data.
Sentiasa mematuhi robots.txt
dan syarat perkhidmatan tapak web sebelum mengikis.
Atas ialah kandungan terperinci Membina Pengikis Web E-Dagang Async dengan Pydantic, Crawl & Gemini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!