ホームページ > バックエンド開発 > Python チュートリアル > Pydantic、Crawl、Gemini を使用した非同期電子商取引 Web スクレイパーの構築

Pydantic、Crawl、Gemini を使用した非同期電子商取引 Web スクレイパーの構築

Mary-Kate Olsen
リリース: 2025-01-12 06:25:42
オリジナル
239 人が閲覧しました

Building an Async E-Commerce Web Scraper with Pydantic, Crawl & Gemini

要約: このガイドでは、crawl4ai の AI を活用した抽出と Pydantic データ モデルを使用して、e コマース スクレーパーを構築する方法を説明します。 スクレイパーは、製品リスト (名前、価格) と詳細な製品情報 (仕様、レビュー) の両方を非同期的に取得します。

Google Colab で完全なコードにアクセスします


電子商取引データ分析のための従来の Web スクレイピングの複雑さにうんざりしていませんか?このチュートリアルでは、最新の Python ツールを使用してプロセスを簡素化します。インテリジェントなデータ抽出には crawl4ai を、堅牢なデータ モデリングと検証には Pydantic を活用します。

Crawl4AI と Pydantic を選ぶ理由

  • crawl4ai: AI 主導の抽出方法を使用して、Web のクローリングとスクレイピングを合理化します。
  • Pydantic: データ検証とスキーマ管理を提供し、構造化された正確なスクレイピング データを保証します。

なぜ Tokopedia をターゲットにするのですか?

インドネシアの大手電子商取引プラットフォームである Tokopedia が例として挙げられます。 (注: 著者はインドネシア人であり、プラットフォームのユーザーですが、提携はしていません。) この原則は他の電子商取引サイトにも適用されます。 このスクレイピング アプローチは、e コマース分析、市場調査、自動データ収集に興味のある開発者にとって有益です。

このアプローチの特徴は何ですか?

複雑な CSS セレクターや XPath に依存する代わりに、crawl4ai の LLM ベースの抽出を利用します。これにより以下が提供されます:

  • Web サイト構造の変更に対する復元力の強化
  • よりクリーンで構造化されたデータ出力。
  • メンテナンスのオーバーヘッドを削減します。

開発環境のセットアップ

必要なパッケージをインストールすることから始めます:

<code class="language-bash">%pip install -U crawl4ai
%pip install nest_asyncio
%pip install pydantic</code>
ログイン後にコピー
ログイン後にコピー

ノートブックでの非同期コード実行の場合は、nest_asyncio:

も使用します。
<code class="language-python">import crawl4ai
import asyncio
import nest_asyncio
nest_asyncio.apply()</code>
ログイン後にコピー

Pydantic を使用したデータ モデルの定義

私たちは Pydantic を使用して、予想されるデータ構造を定義します。 モデルは次のとおりです:

<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>
ログイン後にコピー

これらのモデルはテンプレートとして機能し、データ検証を確実にし、明確なドキュメントを提供します。

スクレイピングプロセス

スクレーパーは 2 つのフェーズで動作します:

1.商品リストをクロール

まず、検索結果ページを取得します。

<code class="language-python">async def crawl_tokopedia_listings(query: str = "mouse-wireless", max_pages: int = 1):
    # ... (Code remains the same) ...</code>
ログイン後にコピー

2.製品詳細を取得しています

次に、製品 URL ごとに詳細情報を取得します。

<code class="language-python">async def crawl_tokopedia_detail(product_url: str):
    # ... (Code remains the same) ...</code>
ログイン後にコピー

ステージの結合

最後に、両方のフェーズを統合します。

<code class="language-python">async def run_full_scrape(query="mouse-wireless", max_pages=2, limit=15):
    # ... (Code remains the same) ...</code>
ログイン後にコピー

スクレーパーの実行

スクレイパーを実行する方法は次のとおりです:

<code class="language-bash">%pip install -U crawl4ai
%pip install nest_asyncio
%pip install pydantic</code>
ログイン後にコピー
ログイン後にコピー

プロのヒント

  1. レート制限: Tokopedia のサーバーを尊重します。大規模なスクレイピングのリクエスト間に遅延が発生します。
  2. キャッシュ: 開発中に roll4ai のキャッシュを有効にします (cache_mode=CacheMode.ENABLED)。
  3. エラー処理: 運用環境で使用するための包括的なエラー処理および再試行メカニズムを実装します。
  4. API キー: Gemini API キーはコード内に直接ではなく、環境変数に安全に保存します。

次のステップ

このスクレーパーは次のように拡張できます:

  • データをデータベースに保存します。
  • モニター価格は時間の経過とともに変化します。
  • 製品の傾向とパターンを分析します。
  • 複数の店舗の価格を比較します。

結論

crawl4ai の LLM ベースの抽出により、従来の方法と比較して Web スクレイピングの保守性が大幅に向上します。 Pydantic との統合により、データの正確性と構造が保証されます。

スクレイピングする前に、必ず Web サイトの robots.txt と利用規約を遵守してください。


重要なリンク:

クロール4AI

ピダンティック


注: 完全なコードは Colab ノートブックで入手できます。 自由に実験して、特定のニーズに合わせて調整してください。

以上がPydantic、Crawl、Gemini を使用した非同期電子商取引 Web スクレイパーの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート