CAPSOLVER
ブログ
ScrapeGraph AI を用いたウェブスクレイピングの方法

ScrapeGraph AI を使ったウェブスクレイピングの方法

Logo of CapSolver

Anh Tuan

Data Science Expert

04-Sep-2024

ScrapeGraph AI を使用したウェブスクレイピング

ScrapeGraph AI とは?

ScrapeGraph AI は、LLM とグラフベースのロジックを利用して、ウェブサイトとローカルドキュメント(XML、HTML、JSON、Markdown などを含む)のスクレイピングパイプラインを構築する Python のウェブスクレイピングライブラリです。抽出したいデータを指定するだけで、ライブラリがすべてを処理します!

このライブラリは、次の機能を提供します。

  • 多くの LLM をサポート: GPT、Gemini、Groq、Azure、Hugging Face
  • ローカルモデル: Ollama。
  • プロキシサポートは、プロキシの背後にあるリクエストを処理します。

前提条件

ScrapeGraph AI の使用を開始する前に、次のものがインストールされていることを確認してください。

bash Copy
pip install scrapegraphai capsolver

playwright install

ScrapeGraph AI の使用開始

以下は、OpenAI を使用して ScrapeGraph AI を使用してウェブページをスクレイピングする基本的な例です。

python Copy
import json
from scrapegraphai.graphs import SmartScraperGraph

# スクラピングパイプラインの構成を定義します
graph_config = {
    "llm": {
        "api_key": "YOUR_OPENAI_APIKEY",
        "model": "openai/gpt-4o-mini",
    },
    "verbose": True,
    "headless": False,
}

# SmartScraperGraph インスタンスを作成します
smart_scraper_graph = SmartScraperGraph(
    prompt="List me all the quotes with their description",
    source="https://quotes.toscrape.com/",
    config=graph_config
)

# パイプラインを実行します
result = smart_scraper_graph.run()
print(json.dumps(result, indent=4))

以下は、ローカルLLM(Ollama)を使用してScrapeGraph AIを使用し、ウェブページをスクレイピングする基本的な例です。

python Copy
import json
from scrapegraphai.graphs import SmartScraperGraph

# スクラピングパイプラインの構成を定義します
graph_config = {
    "llm": {
        "model": "ollama/llama3.1",
        "temperature": 0,
        "format": "json",  # Ollamaでは、形式を明示的に指定する必要があります。
        # "base_url": "http://localhost:11434", # ollama URLを任意に設定します。
    },
    "verbose": True,
    "headless": False
}

# SmartScraperGraph インスタンスを作成します
smart_scraper_graph = SmartScraperGraph(
    prompt="List me all the quotes with their description",
    source="https://quotes.toscrape.com/",
    config=graph_config
)

# パイプラインを実行します
result = smart_scraper_graph.run()
print(json.dumps(result, indent=4))

Capsolver と ScrapeGraph AI を使用して CAPTCHA を処理する

このセクションでは、Capsolver を ScrapeGraph AI と統合して CAPTCHA を回避する方法について説明します。Capsolver は、ウェブサイトで一般的に使用されている ReCaptcha V2 を含む、さまざまなタイプの CAPTCHA の解決を支援する外部サービスです。

Capsolver を使用して ReCaptcha V2 を解決し、CAPTCHA の解決が最初に必要なページのコンテンツをスクレイピングする手順を紹介します。

ボーナスコード

最高のCAPTCHAソリューションのボーナスコードを請求してください。Capsolver: scrape. コードを適用すると、次回のチャージ後、5% のボーナスが加算されます。 無制限

例: Capsolver と ScrapeGraph AI を使用して ReCaptcha V2 を解決する

python Copy
import capsolver
import os
import json
from scrapegraphai.graphs import SmartScraperGraph

# 環境変数を使い、機密情報を取り扱います。
PROXY = os.getenv("PROXY", "http://username:password@host:port")
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "Your Capsolver API Key")
PAGE_URL = os.getenv("PAGE_URL", "PAGE_URL")
PAGE_KEY = os.getenv("PAGE_SITE_KEY", "PAGE_SITE_KEY")

def solve_recaptcha_v2(url, key):
    solution = capsolver.solve({
        "type": "ReCaptchaV2Task",
        "websiteURL": url,
        "websiteKey": key,
        "proxy": PROXY
    })
    return solution['solution']['gRecaptchaResponse']

def main():
    print("Solving reCaptcha v2")
    solution = solve_recaptcha_v2(PAGE_URL, PAGE_KEY)
    print("Solution: ", solution)

# スクラピングパイプラインの構成を定義します
graph_config = {
    "llm": {
        "api_key": "YOUR_OPENAI_APIKEY",
        "model": "openai/gpt-4o-mini",
    },
    "verbose": True,
    "headless": False,
}

# SmartScraperGraph インスタンスを作成します
smart_scraper_graph = SmartScraperGraph(
    prompt="Find the description of each quote.",
    source="https://quotes.toscrape.com/",
    config=graph_config
)

# パイプラインを実行します
result = smart_scraper_graph.run()
print(json.dumps(result, indent=4))

まとめ

ScrapeGraph AI を使用すれば、プロキシや CAPTCHA の複雑さを処理しながら、効率的にウェブサイトをスクレイピングできます。Capsolver と組み合わせることで、ReCaptcha V2 の課題をシームレスに回避し、スクレイピングが困難なコンテンツにアクセスできるようになります。

このスクリプトを拡張して、自分のスクレイピングのニーズに合わせてカスタマイズし、ScrapeGraph AI が提供する追加機能を試してみてください。スクレイピング活動が、ウェブサイトの利用規約と法的ガイドラインを尊重していることを常に確認してください。

ハッピー・スクレイピング!

コンプライアンス免責事項: このブログで提供される情報は、情報提供のみを目的としています。CapSolverは、すべての適用される法律および規制の遵守に努めています。CapSolverネットワークの不法、詐欺、または悪用の目的での使用は厳格に禁止され、調査されます。私たちのキャプチャ解決ソリューションは、公共データのクローリング中にキャプチャの問題を解決する際に100%のコンプライアンスを確保しながら、ユーザーエクスペリエンスを向上させます。私たちは、サービスの責任ある使用を奨励します。詳細については、サービス利用規約およびプライバシーポリシーをご覧ください。

もっと見る