Crawl4AIをScrapeless Cloud Browserで強化する方法

Expert Network Defense Engineer
このチュートリアルでは、以下を学びます:
- Crawl4AIとは何か、webスクレイピングのために何を提供するか
- Crawl4AIをScrapeless Browserと統合する方法
さあ始めましょう!
第1部: Crawl4AIとは?
概要
Crawl4AIは、Large Language Models (LLMs)、AIエージェント、データパイプラインとシームレスに統合するために設計されたオープンソースのウェブクロールおよびスクレイピングツールです。高速でリアルタイムなデータ抽出を可能にしながら、柔軟性があり、導入も簡単です。
AIを活用したwebスクレイピングの主な機能は以下の通りです:
- LLMs向けに構築: Retrieval-Augmented Generation (RAG)やファインチューニングに最適化された構造化されたMarkdownを生成します。
- 柔軟なブラウザ制御: セッション管理、プロキシ利用、カスタムフックをサポートします。
- ヒューリスティックインテリジェンス: スマートなアルゴリズムを使用してデータパースを最適化します。
- 完全オープンソース: APIキーは不要で、Dockerやクラウドプラットフォームを通じて展開可能です。
詳しくは公式ドキュメントをご覧ください。
ユースケース
Crawl4AIは、市場調査、ニュース集約、eコマース製品収集などの大規模データ抽出作業に最適です。動的でJavaScriptが多用されたウェブサイトに対応でき、AIエージェントや自動データパイプラインの信頼できるデータソースとして機能します。
第2部: Scrapeless Browserとは?
Scrapeless Browserは、クラウドベースのサーバーレスブラウザ自動化ツールです。深くカスタマイズされたChromiumカーネル上に構築され、世界中に分散されたサーバーとプロキシネットワークによってサポートされています。これにより、ユーザーは多数のヘッドレスブラウザインスタンスをシームレスに実行および管理でき、スケールでウェブと対話するAIアプリケーションやAIエージェントの構築が容易になります。
第3部: ScrapelessとCrawl4AIを組み合わせる理由は?
Crawl4AIは構造化されたウェブデータ抽出に優れており、LLM駆動のパースおよびパターンベースのスクレイピングをサポートします。しかし、高度なボット対策メカニズムに対処する際に、以下のような課題に直面することがあります:
- Cloudflare、AWS WAF、またはreCAPTCHAによってローカルブラウザがブロックされる
- 大規模同時クロール中のパフォーマンスボトルネック、起動が遅いブラウザ
- 問題追跡が難しい複雑なデバッグプロセス
Scrapeless Cloud Browserは、これらの課題を完璧に解決します:
- ワンクリックでのボット対策バイパス: reCAPTCHA、Cloudflare Turnstile/Challenge、AWS WAFなどを自動的に処理します。Crawl4AIの構造化抽出機能と組み合わせることで、成功率が大幅に向上します。
- 無制限の同時スケーリング: タスクごとに50〜1000以上のブラウザインスタンスを数秒以内に起動し、ローカルクロールのパフォーマンス制限を取り除き、Crawl4AIの効率を最大化します。
- 40%〜80%のコスト削減: 類似のクラウドサービスと比較して、総コストはわずか20%〜60%に下がります。従量課金制により、小規模プロジェクトでも手頃な価格で利用可能です。
- 視覚的デバッグツール: セッション再生やライブURLモニタリングを使用して、リアルタイムでCrawl4AIタスクを監視し、失敗の原因を迅速に特定し、デバッグの負担を軽減します。
- ゼロコスト統合: Playwright(Crawl4AIで使用)のネイティブ互換性があり、Crawl4AIをクラウドに接続するのに必要なコードは1行だけです — コードのリファクタリングは不要です。
- エッジノードサービス(ENS): 複数のグローバルノードが、他のクラウドブラウザの2〜3倍の起動速度と安定性を提供し、Crawl4AIの実行を加速させます。
- 隔離された環境&永続的セッション: 各Scrapelessプロファイルは独自の環境で実行され、永続的なログインとアイデンティティの隔離が行われ、セッション干渉を防ぎ、大規模な安定性を向上させます。
- 柔軟なフィンガープリンティング管理: Scrapelessはランダムなブラウザフィンガープリントを生成するか、カスタム設定を使用し、検出リスクを効果的に低減し、Crawl4AIの成功率を向上させます。
第4部: Crawl4AIでScrapelessを使用する方法は?
Scrapelessは通常CDP_URLを返すクラウドブラウザサービスを提供します。Crawl4AIは、このURLを使用してクラウドブラウザに直接接続でき、ローカルでブラウザを起動する必要はありません。
以下の例は、Crawl4AIをScrapeless Cloud Browserとシームレスに統合し、効率的なスクレイピングを実現し、自動プロキシローテーション、カスタムフィンガープリント、およびプロファイル再利用をサポートします。
Scrapelessトークンを取得する
Scrapelessにログインし、APIトークンを取得してください。
1. クイックスタート
以下の例では、Crawl4AIをスクラペレスクラウドブラウザに迅速かつ簡単に接続する方法を示します:
詳細な機能や指示については、イントロダクションを参照してください。
scrapeless_params = {
"token": "https://www.scrapeless.comからトークンを取得",
"sessionName": "スクラペレスブラウザ",
"sessionTTL": 1000,
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"
AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url
)
)
設定後、Crawl4AIは**CDP(Chrome DevTools Protocol)**モードを介してスクラペレスクラウドブラウザに接続し、ローカルブラウザ環境なしでウェブスクレイピングを有効にします。ユーザーは、高い同時実行性や複雑なボット対策のシナリオに対応するために、プロキシ、フィンガープリンツ、セッション再利用やその他の機能をさらに構成できます。
2. グローバル自動プロキシローテーション
スクラペレスは195か国にわたる住宅IPをサポートしています。ユーザーはproxycountry
を使用してターゲット地域を設定でき、特定の場所からリクエストを送信できます。IPは自動的にローテーションされ、ブロックを回避します。
import asyncio
from urllib.parse import urlencode
from Crawl4AI import CrawlerRunConfig, BrowserConfig, AsyncWebCrawler
async def main():
scrapeless_params = {
"token": "トークンを挿入",
"sessionTTL": 1000,
"sessionName": "プロキシデモ",
"proxyCountry": "ANY",
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"
async with AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url,
)
) as crawler:
result = await crawler.arun(
url="https://www.scrapeless.com/en",
config=CrawlerRunConfig(
wait_for="css:.content",
scan_full_page=True,
),
)
print("-" * 20)
print(f'ステータスコード: {result.status_code}')
print("-" * 20)
print(f'タイトル: {result.metadata["title"]}')
print(f'説明: {result.metadata["description"]}')
print("-" * 20)
asyncio.run(main())
3. カスタムブラウザフィンガープリンツ
実ユーザーの行動を模倣するために、スクラペレスはランダムに生成されたブラウザフィンガープリンツをサポートし、カスタムフィンガープリンツパラメータも許可しています。これにより、ターゲットウェブサイトに検出されるリスクが効果的に低減されます。
import json
import asyncio
from urllib.parse import quote, urlencode
from Crawl4AI import CrawlerRunConfig, BrowserConfig, AsyncWebCrawler
async def main():
fingerprint = {
"userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.1.2.3 Safari/537.36",
"platform": "Windows",
"screen": {
"width": 1280, "height": 1024
},
"localization": {
"languages": ["zh-HK", "en-US", "en"], "timezone": "Asia/Hong_Kong",
}
}
fingerprint_json = json.dumps(fingerprint)
encoded_fingerprint = quote(fingerprint_json)
scrapeless_params = {
"token": "トークンを挿入",
"sessionTTL": 1000,
"sessionName": "フィンガープリンツデモ",
"fingerprint": encoded_fingerprint,
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"
async with AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url,
)
) as crawler:
result = await crawler.arun(
url="https://www.scrapeless.com/en",
config=CrawlerRunConfig(
wait_for="css:.content",
scan_full_page=True,
),
)
print("-" * 20)
print(f'ステータスコード: {result.status_code}')
print("-" * 20)
print(f'タイトル: {result.metadata["title"]}')
print(f'説明: {result.metadata["description"]}')
print("-" * 20)
asyncio.run(main())
4. プロファイル再利用
Scrapelessは各プロファイルに独立したブラウザ環境を割り当てることで、永続的なログインやアイデンティティの隔離を可能にします。ユーザーは単にprofileId
を提供することで、以前のセッションを再利用できます。
import asyncio
from urllib.parse import urlencode
from Crawl4AI import CrawlerRunConfig, BrowserConfig, AsyncWebCrawler
async def main():
scrapeless_params = {
"token": "your token",
"sessionTTL": 1000,
"sessionName": "Profile Demo",
"profileId": "your profileId", # scrapelessでプロファイルを作成
}
query_string = urlencode(scrapeless_params)
scrapeless_connection_url = f"wss://browser.scrapeless.com/api/v2/browser?{query_string}"
async with AsyncWebCrawler(
config=BrowserConfig(
headless=False,
browser_mode="cdp",
cdp_url=scrapeless_connection_url,
)
) as crawler:
result = await crawler.arun(
url="https://www.scrapeless.com",
config=CrawlerRunConfig(
wait_for="css:.content",
scan_full_page=True,
),
)
print("-" * 20)
print(f'ステータスコード: {result.status_code}')
print("-" * 20)
print(f'タイトル: {result.metadata["title"]}')
print(f'説明: {result.metadata["description"]}')
print("-" * 20)
asyncio.run(main())
動画

よくある質問
Q: ブラウザ実行プロセスを記録して表示するにはどうすればよいですか?
A: 単にsessionRecording
パラメーターを"true"
に設定してください。ブラウザ実行全体が自動的に記録されます。セッションが終了した後、セッション履歴リストでクリック、スクロール、ページロード、その他の詳細を含む完全なアクティビティを再生してレビューできます。デフォルト値は"false"
です。
scrapeless_params = {
# ...
"sessionRecording": "true",
}
Q: ランダムなフィンガープリントを使用するにはどうすればよいですか?
A: Scrapelessブラウザサービスは、各セッションのために自動的にランダムなブラウザフィンガープリントを生成します。ユーザーはfingerprint
フィールドを使用してカスタムフィンガープリントを設定することもできます。
Q: カスタムプロキシを設定するにはどうすればよいですか?
A: 当社の内蔵プロキシネットワークは195カ国/地域をサポートしています。ユーザーが独自のプロキシを使用したい場合、proxyURL
パラメーターを使用してプロキシURLを指定できます。例: http://user:pass@ip:port
。
(注: カスタムプロキシ機能は現在、エンタープライズおよびエンタープライズプラスの加入者のみが利用可能です。)
scrapeless_params = {
# ...
"proxyURL": "proxyURL",
}
概要
Scrapeless Cloud BrowserとCrawl4AIを組み合わせることで、開発者には安定したスケーラブルなウェブスクレイピング環境が提供されます:
- ローカルのChromeインスタンスをインストールまたは維持する必要がなく、すべてのタスクがクラウド内で直接実行されます。
- 各セッションが隔離され、ランダムまたはカスタムフィンガープリントをサポートするため、ブロックやCAPTCHAによる中断のリスクが減ります。
- 自動セッション記録と再生のサポートにより、デバッグと再現性が向上します。
- 195カ国/地域での自動プロキシローテーションをサポートします。
- グローバルなエッジノードサービスを利用し、他の類似サービスよりも高速な起動速度を提供します。
このコラボレーションは、ウェブデータスクレイピング分野におけるScrapelessとCrawl4AIにとって重要なマイルストーンです。今後、Scrapelessはクラウドブラウザ技術に焦点を当て、エンタープライズクライアントに対して効率的でスケーラブルなデータ抽出、オートメーション、AIエージェントインフラストラクチャのサポートを提供します。強力なクラウド機能を活かし、Scrapelessは金融、小売、eコマース、SEO、マーケティングなどの業界向けにカスタマイズされたシナリオベースのソリューションを提供し、データインテリジェンスの時代における真の自動成長を実現する手助けをします。
Scrapelessでは、適用される法律、規制、およびWebサイトのプライバシーポリシーを厳密に遵守しながら、公開されているデータのみにアクセスします。 このブログのコンテンツは、デモンストレーションのみを目的としており、違法または侵害の活動は含まれません。 このブログまたはサードパーティのリンクからの情報の使用に対するすべての責任を保証せず、放棄します。 スクレイピング活動に従事する前に、法律顧問に相談し、ターゲットウェブサイトの利用規約を確認するか、必要な許可を取得してください。