docs: CJK Latin spacing fixes for the JP README
This commit is contained in:
+77
-77
@@ -36,7 +36,7 @@
|
||||
<p align="center">
|
||||
<a href="https://scrapling.readthedocs.io/en/latest/parsing/selection.html"><strong>選択メソッド</strong></a>
|
||||
·
|
||||
<a href="https://scrapling.readthedocs.io/en/latest/fetching/choosing.html"><strong>Fetcherの選び方</strong></a>
|
||||
<a href="https://scrapling.readthedocs.io/en/latest/fetching/choosing.html"><strong>Fetcher の選び方</strong></a>
|
||||
·
|
||||
<a href="https://scrapling.readthedocs.io/en/latest/spiders/architecture.html"><strong>スパイダー</strong></a>
|
||||
·
|
||||
@@ -44,14 +44,14 @@
|
||||
·
|
||||
<a href="https://scrapling.readthedocs.io/en/latest/cli/overview.html"><strong>CLI</strong></a>
|
||||
·
|
||||
<a href="https://scrapling.readthedocs.io/en/latest/ai/mcp-server.html"><strong>MCPモード</strong></a>
|
||||
<a href="https://scrapling.readthedocs.io/en/latest/ai/mcp-server.html"><strong>MCP モード</strong></a>
|
||||
</p>
|
||||
|
||||
Scraplingは、単一のリクエストから本格的なクロールまですべてを処理する適応型Web Scrapingフレームワークです。
|
||||
Scrapling は、単一のリクエストから本格的なクロールまですべてを処理する適応型 Web Scraping フレームワークです。
|
||||
|
||||
そのパーサーはウェブサイトの変更から学習し、ページが更新されたときに要素を自動的に再配置します。Fetcherはすぐに使えるCloudflare Turnstileなどのアンチボットシステムを回避します。そしてSpiderフレームワークにより、Pause & Resumeや自動Proxy回転機能を備えた並行マルチSessionクロールへとスケールアップできます — すべてわずか数行のPythonで。1つのライブラリ、妥協なし。
|
||||
そのパーサーはウェブサイトの変更から学習し、ページが更新されたときに要素を自動的に再配置します。Fetcher はすぐに使える Cloudflare Turnstile などのアンチボットシステムを回避します。そして Spider フレームワークにより、Pause & Resume や自動 Proxy 回転機能を備えた並行マルチ Session クロールへとスケールアップできます — すべてわずか数行の Python で。1 つのライブラリ、妥協なし。
|
||||
|
||||
リアルタイム統計とStreamingによる超高速クロール。Web Scraperによって、Web Scraperと一般ユーザーのために構築され、誰にでも何かがあります。
|
||||
リアルタイム統計と Streaming による超高速クロール。Web Scraper によって、Web Scraper と一般ユーザーのために構築され、誰にでも何かがあります。
|
||||
|
||||
```python
|
||||
from scrapling.fetchers import Fetcher, AsyncFetcher, StealthyFetcher, DynamicFetcher
|
||||
@@ -89,9 +89,9 @@ MySpider().start()
|
||||
<img src="https://raw.githubusercontent.com/D4Vinci/Scrapling/main/images/HyperSolutions.png">
|
||||
</a>
|
||||
</td>
|
||||
<td> ScraplingはCloudflare Turnstileに対応。エンタープライズレベルの保護には、<a href="https://hypersolutions.co?utm_source=github&utm_medium=readme&utm_campaign=scrapling">
|
||||
<td> Scrapling は Cloudflare Turnstile に対応。エンタープライズレベルの保護には、<a href="https://hypersolutions.co?utm_source=github&utm_medium=readme&utm_campaign=scrapling">
|
||||
<b>Hyper Solutions</b>
|
||||
</a>が<b>Akamai</b>、<b>DataDome</b>、<b>Kasada</b>、<b>Incapsula</b>向けの有効なantibotトークンを生成するAPIエンドポイントを提供。シンプルなAPI呼び出しで、ブラウザ自動化不要。 </td>
|
||||
</a>が<b>Akamai</b>、<b>DataDome</b>、<b>Kasada</b>、<b>Incapsula</b>向けの有効な antibot トークンを生成する API エンドポイントを提供。シンプルな API 呼び出しで、ブラウザ自動化不要。 </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td width="200">
|
||||
@@ -102,7 +102,7 @@ MySpider().start()
|
||||
<td>プロキシは複雑で高価であるべきではないと考え、<a href="https://birdproxies.com/t/scrapling">
|
||||
<b>BirdProxies</b>
|
||||
</a>を構築しました。 <br /> 195以上のロケーションの高速レジデンシャル・ISPプロキシ、公正な価格設定、そして本物のサポート。 <br />
|
||||
<b>ランディングページでFlappyBirdゲームを試して無料データをゲット!</b>
|
||||
<b>ランディングページでFlappyBird ゲームを試して無料データをゲット!</b>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -146,7 +146,7 @@ MySpider().start()
|
||||
</td>
|
||||
<td>
|
||||
ノートパソコンを閉じても、スクレイパーは動き続けます。<br />
|
||||
<a href="https://petrosky.io/d4vinci" target="_blank">PetroSky VPS</a> - ノンストップ自動化のために構築されたクラウドサーバー。WindowsとLinuxマシンを完全制御。月額€6.99から。
|
||||
<a href="https://petrosky.io/d4vinci" target="_blank">PetroSky VPS</a> - ノンストップ自動化のために構築されたクラウドサーバー。Windows と Linux マシンを完全制御。月額 €6.99 から。
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -156,7 +156,7 @@ MySpider().start()
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="https://substack.thewebscraping.club/p/scrapling-hands-on-guide?utm_source=github&utm_medium=repo&utm_campaign=scrapling" target="_blank">The Web Scraping ClubでScraplingの詳細レビュー</a>(2025年11月)をお読みください。Webスクレイピング専門のNo.1ニュースレターです。
|
||||
<a href="https://substack.thewebscraping.club/p/scrapling-hands-on-guide?utm_source=github&utm_medium=repo&utm_campaign=scrapling" target="_blank">The Web Scraping Club で Scrapling の詳細レビュー</a>(2025年11月)をお読みください。Web スクレイピング専門の No.1 ニュースレターです。
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -192,55 +192,55 @@ MySpider().start()
|
||||
## 主な機能
|
||||
|
||||
### Spider — 本格的なクロールフレームワーク
|
||||
- 🕷️ **Scrapy風のSpider API**:`start_urls`、async `parse` callback、`Request`/`Response`オブジェクトでSpiderを定義。
|
||||
- 🕷️ **Scrapy 風の Spider API**:`start_urls`、async `parse` callback、`Request`/`Response` オブジェクトで Spider を定義。
|
||||
- ⚡ **並行クロール**:設定可能な並行数制限、ドメインごとのスロットリング、ダウンロード遅延。
|
||||
- 🔄 **マルチSessionサポート**:HTTPリクエストとステルスヘッドレスブラウザの統一インターフェース — IDによって異なるSessionにリクエストをルーティング。
|
||||
- 💾 **Pause & Resume**:Checkpointベースのクロール永続化。Ctrl+Cで正常にシャットダウン;再起動すると中断したところから再開。
|
||||
- 📡 **Streamingモード**:`async for item in spider.stream()`でリアルタイム統計とともにスクレイプされたアイテムをStreamingで受信 — UI、パイプライン、長時間実行クロールに最適。
|
||||
- 🔄 **マルチ Session サポート**:HTTP リクエストとステルスヘッドレスブラウザの統一インターフェース — ID によって異なる Session にリクエストをルーティング。
|
||||
- 💾 **Pause & Resume**:Checkpoint ベースのクロール永続化。Ctrl+C で正常にシャットダウン;再起動すると中断したところから再開。
|
||||
- 📡 **Streaming モード**:`async for item in spider.stream()` でリアルタイム統計とともにスクレイプされたアイテムを Streaming で受信 — UI、パイプライン、長時間実行クロールに最適。
|
||||
- 🛡️ **ブロックされたリクエストの検出**:カスタマイズ可能なロジックによるブロックされたリクエストの自動検出とリトライ。
|
||||
- 📦 **組み込みエクスポート**:フックや独自のパイプライン、または組み込みのJSON/JSONLで結果をエクスポート。それぞれ`result.items.to_json()` / `result.items.to_jsonl()`を使用。
|
||||
- 📦 **組み込みエクスポート**:フックや独自のパイプライン、または組み込みの JSON/JSONL で結果をエクスポート。それぞれ`result.items.to_json()` / `result.items.to_jsonl()`を使用。
|
||||
|
||||
### Sessionサポート付き高度なウェブサイト取得
|
||||
- **HTTPリクエスト**:`Fetcher`クラスで高速かつステルスなHTTPリクエスト。ブラウザのTLS fingerprint、ヘッダーを模倣し、HTTP/3を使用可能。
|
||||
- **動的読み込み**:PlaywrightのChromiumとGoogle Chromeをサポートする`DynamicFetcher`クラスによる完全なブラウザ自動化で動的ウェブサイトを取得。
|
||||
- **アンチボット回避**:`StealthyFetcher`とfingerprint偽装による高度なステルス機能。自動化でCloudflareのTurnstile/Interstitialのすべてのタイプを簡単に回避。
|
||||
- **Session管理**:リクエスト間でCookieと状態を管理するための`FetcherSession`、`StealthySession`、`DynamicSession`クラスによる永続的なSessionサポート。
|
||||
- **Proxy回転**:すべてのSessionタイプに対応したラウンドロビンまたはカスタム戦略の組み込み`ProxyRotator`、さらにリクエストごとのProxyオーバーライド。
|
||||
- **ドメインブロック**:ブラウザベースのFetcherで特定のドメイン(およびそのサブドメイン)へのリクエストをブロック。
|
||||
- **asyncサポート**:すべてのFetcherおよび専用asyncSessionクラス全体での完全なasyncサポート。
|
||||
### Session サポート付き高度なウェブサイト取得
|
||||
- **HTTP リクエスト**:`Fetcher` クラスで高速かつステルスな HTTP リクエスト。ブラウザの TLS fingerprint、ヘッダーを模倣し、HTTP/3 を使用可能。
|
||||
- **動的読み込み**:Playwright の Chromium と Google Chrome をサポートする `DynamicFetcher` クラスによる完全なブラウザ自動化で動的ウェブサイトを取得。
|
||||
- **アンチボット回避**:`StealthyFetcher` と fingerprint 偽装による高度なステルス機能。自動化で Cloudflare の Turnstile/Interstitial のすべてのタイプを簡単に回避。
|
||||
- **Session 管理**:リクエスト間で Cookie と状態を管理するための `FetcherSession`、`StealthySession`、`DynamicSession` クラスによる永続的な Session サポート。
|
||||
- **Proxy 回転**:すべての Session タイプに対応したラウンドロビンまたはカスタム戦略の組み込み `ProxyRotator`、さらにリクエストごとの Proxy オーバーライド。
|
||||
- **ドメインブロック**:ブラウザベースの Fetcher で特定のドメイン(およびそのサブドメイン)へのリクエストをブロック。
|
||||
- **async サポート**:すべての Fetcher および専用 async Session クラス全体での完全な async サポート。
|
||||
|
||||
### 適応型スクレイピングとAI統合
|
||||
### 適応型スクレイピングと AI 統合
|
||||
- 🔄 **スマート要素追跡**:インテリジェントな類似性アルゴリズムを使用してウェブサイトの変更後に要素を再配置。
|
||||
- 🎯 **スマート柔軟選択**:CSSセレクタ、XPathセレクタ、フィルタベース検索、テキスト検索、正規表現検索など。
|
||||
- 🎯 **スマート柔軟選択**:CSS セレクタ、XPath セレクタ、フィルタベース検索、テキスト検索、正規表現検索など。
|
||||
- 🔍 **類似要素の検出**:見つかった要素に類似した要素を自動的に特定。
|
||||
- 🤖 **AIと使用するMCPサーバー**:AI支援Web Scrapingとデータ抽出のための組み込みMCPサーバー。MCPサーバーは、AI(Claude/Cursorなど)に渡す前にScraplingを活用してターゲットコンテンツを抽出する強力でカスタムな機能を備えており、操作を高速化し、トークン使用量を最小限に抑えることでコストを削減します。([デモ動画](https://www.youtube.com/watch?v=qyFk3ZNwOxE))
|
||||
- 🤖 **AI と使用する MCP サーバー**:AI 支援 Web Scraping とデータ抽出のための組み込み MCP サーバー。MCP サーバーは、AI(Claude/Cursor など)に渡す前に Scrapling を活用してターゲットコンテンツを抽出する強力でカスタムな機能を備えており、操作を高速化し、トークン使用量を最小限に抑えることでコストを削減します。([デモ動画](https://www.youtube.com/watch?v=qyFk3ZNwOxE))
|
||||
|
||||
### 高性能で実戦テスト済みのアーキテクチャ
|
||||
- 🚀 **超高速**:ほとんどのPythonスクレイピングライブラリを上回る最適化されたパフォーマンス。
|
||||
- 🚀 **超高速**:ほとんどの Python スクレイピングライブラリを上回る最適化されたパフォーマンス。
|
||||
- 🔋 **メモリ効率**:最小のメモリフットプリントのための最適化されたデータ構造と遅延読み込み。
|
||||
- ⚡ **高速JSONシリアル化**:標準ライブラリの10倍の速度。
|
||||
- 🏗️ **実戦テスト済み**:Scraplingは92%のテストカバレッジと完全な型ヒントカバレッジを備えているだけでなく、過去1年間に数百人のWeb Scraperによって毎日使用されてきました。
|
||||
- ⚡ **高速 JSON シリアル化**:標準ライブラリの 10 倍の速度。
|
||||
- 🏗️ **実戦テスト済み**:Scrapling は 92% のテストカバレッジと完全な型ヒントカバレッジを備えているだけでなく、過去1年間に数百人の Web Scraper によって毎日使用されてきました。
|
||||
|
||||
### 開発者/Web Scraperにやさしい体験
|
||||
- 🎯 **インタラクティブWeb Scraping Shell**:Scrapling統合、ショートカット、curlリクエストをScraplingリクエストに変換したり、ブラウザでリクエスト結果を表示したりするなどの新しいツールを備えたオプションの組み込みIPython Shellで、Web Scrapingスクリプトの開発を加速。
|
||||
- 🚀 **ターミナルから直接使用**:オプションで、コードを一行も書かずにScraplingを使用してURLをスクレイプできます!
|
||||
- 🛠️ **豊富なナビゲーションAPI**:親、兄弟、子のナビゲーションメソッドによる高度なDOMトラバーサル。
|
||||
### 開発者/Web Scraper にやさしい体験
|
||||
- 🎯 **インタラクティブ Web Scraping Shell**:Scrapling 統合、ショートカット、curl リクエストを Scrapling リクエストに変換したり、ブラウザでリクエスト結果を表示したりするなどの新しいツールを備えたオプションの組み込み IPython Shell で、Web Scraping スクリプトの開発を加速。
|
||||
- 🚀 **ターミナルから直接使用**:オプションで、コードを一行も書かずに Scrapling を使用して URL をスクレイプできます!
|
||||
- 🛠️ **豊富なナビゲーション API**:親、兄弟、子のナビゲーションメソッドによる高度な DOM トラバーサル。
|
||||
- 🧬 **強化されたテキスト処理**:組み込みの正規表現、クリーニングメソッド、最適化された文字列操作。
|
||||
- 📝 **自動セレクタ生成**:任意の要素に対して堅牢なCSS/XPathセレクタを生成。
|
||||
- 🔌 **馴染みのあるAPI**:Scrapy/Parselで使用されている同じ疑似要素を持つScrapy/BeautifulSoupに似た設計。
|
||||
- 📘 **完全な型カバレッジ**:優れたIDEサポートとコード補完のための完全な型ヒント。コードベース全体が変更のたびに**PyRight**と**MyPy**で自動的にスキャンされます。
|
||||
- 🔋 **すぐに使えるDockerイメージ**:各リリースで、すべてのブラウザを含むDockerイメージが自動的にビルドおよびプッシュされます。
|
||||
- 📝 **自動セレクタ生成**:任意の要素に対して堅牢な CSS/XPath セレクタを生成。
|
||||
- 🔌 **馴染みのある API**:Scrapy/Parsel で使用されている同じ疑似要素を持つ Scrapy/BeautifulSoup に似た設計。
|
||||
- 📘 **完全な型カバレッジ**:優れた IDE サポートとコード補完のための完全な型ヒント。コードベース全体が変更のたびに**PyRight**と**MyPy**で自動的にスキャンされます。
|
||||
- 🔋 **すぐに使える Docker イメージ**:各リリースで、すべてのブラウザを含む Docker イメージが自動的にビルドおよびプッシュされます。
|
||||
|
||||
## はじめに
|
||||
|
||||
深く掘り下げずに、Scraplingにできることの簡単な概要をお見せしましょう。
|
||||
深く掘り下げずに、Scrapling にできることの簡単な概要をお見せしましょう。
|
||||
|
||||
### 基本的な使い方
|
||||
Sessionサポート付きHTTPリクエスト
|
||||
Session サポート付き HTTP リクエスト
|
||||
```python
|
||||
from scrapling.fetchers import Fetcher, FetcherSession
|
||||
|
||||
with FetcherSession(impersonate='chrome') as session: # ChromeのTLS fingerprintの最新バージョンを使用
|
||||
with FetcherSession(impersonate='chrome') as session: # Chrome の TLS fingerprint の最新バージョンを使用
|
||||
page = session.get('https://quotes.toscrape.com/', stealthy_headers=True)
|
||||
quotes = page.css('.quote .text::text').getall()
|
||||
|
||||
@@ -266,7 +266,7 @@ from scrapling.fetchers import DynamicFetcher, DynamicSession
|
||||
|
||||
with DynamicSession(headless=True, disable_resources=False, network_idle=True) as session: # 完了するまでブラウザを開いたままにする
|
||||
page = session.fetch('https://quotes.toscrape.com/', load_dom=False)
|
||||
data = page.xpath('//span[@class="text"]/text()').getall() # お好みであればXPathセレクタを使用
|
||||
data = page.xpath('//span[@class="text"]/text()').getall() # お好みであれば XPath セレクタを使用
|
||||
|
||||
# または一回限りのリクエストスタイル、このリクエストのためにブラウザを開き、完了後に閉じる
|
||||
page = DynamicFetcher.fetch('https://quotes.toscrape.com/')
|
||||
@@ -274,7 +274,7 @@ data = page.css('.quote .text::text').getall()
|
||||
```
|
||||
|
||||
### Spider
|
||||
並行リクエスト、複数のSessionタイプ、Pause & Resumeを備えた本格的なクローラーを構築:
|
||||
並行リクエスト、複数の Session タイプ、Pause & Resume を備えた本格的なクローラーを構築:
|
||||
```python
|
||||
from scrapling.spiders import Spider, Request, Response
|
||||
|
||||
@@ -298,7 +298,7 @@ result = QuotesSpider().start()
|
||||
print(f"{len(result.items)}件の引用をスクレイプしました")
|
||||
result.items.to_json("quotes.json")
|
||||
```
|
||||
単一のSpiderで複数のSessionタイプを使用:
|
||||
単一の Spider で複数の Session タイプを使用:
|
||||
```python
|
||||
from scrapling.spiders import Spider, Request, Response
|
||||
from scrapling.fetchers import FetcherSession, AsyncStealthySession
|
||||
@@ -313,17 +313,17 @@ class MultiSessionSpider(Spider):
|
||||
|
||||
async def parse(self, response: Response):
|
||||
for link in response.css('a::attr(href)').getall():
|
||||
# 保護されたページはステルスSessionを通してルーティング
|
||||
# 保護されたページはステルス Session を通してルーティング
|
||||
if "protected" in link:
|
||||
yield Request(link, sid="stealth")
|
||||
else:
|
||||
yield Request(link, sid="fast", callback=self.parse) # 明示的なcallback
|
||||
yield Request(link, sid="fast", callback=self.parse) # 明示的な callback
|
||||
```
|
||||
Checkpointを使用して長時間のクロールをPause & Resume:
|
||||
Checkpoint を使用して長時間のクロールをPause & Resume:
|
||||
```python
|
||||
QuotesSpider(crawldir="./crawl_data").start()
|
||||
```
|
||||
Ctrl+Cを押すと正常に一時停止し、進捗は自動的に保存されます。後でSpiderを再度起動する際に同じ`crawldir`を渡すと、中断したところから再開します。
|
||||
Ctrl+C を押すと正常に一時停止し、進捗は自動的に保存されます。後で Spider を再度起動する際に同じ`crawldir`を渡すと、中断したところから再開します。
|
||||
|
||||
### 高度なパースとナビゲーション
|
||||
```python
|
||||
@@ -333,9 +333,9 @@ from scrapling.fetchers import Fetcher
|
||||
page = Fetcher.get('https://quotes.toscrape.com/')
|
||||
|
||||
# 複数の選択メソッドで引用を取得
|
||||
quotes = page.css('.quote') # CSSセレクタ
|
||||
quotes = page.css('.quote') # CSS セレクタ
|
||||
quotes = page.xpath('//div[@class="quote"]') # XPath
|
||||
quotes = page.find_all('div', {'class': 'quote'}) # BeautifulSoupスタイル
|
||||
quotes = page.find_all('div', {'class': 'quote'}) # BeautifulSoup スタイル
|
||||
# 以下と同じ
|
||||
quotes = page.find_all('div', class_='quote')
|
||||
quotes = page.find_all(['div'], class_='quote')
|
||||
@@ -362,16 +362,16 @@ page = Selector("<html>...</html>")
|
||||
```
|
||||
まったく同じ方法で動作します!
|
||||
|
||||
### 非同期Session管理の例
|
||||
### 非同期 Session 管理の例
|
||||
```python
|
||||
import asyncio
|
||||
from scrapling.fetchers import FetcherSession, AsyncStealthySession, AsyncDynamicSession
|
||||
|
||||
async with FetcherSession(http3=True) as session: # `FetcherSession`はコンテキストアウェアで、同期/非同期両方のパターンで動作可能
|
||||
async with FetcherSession(http3=True) as session: # `FetcherSession` はコンテキストアウェアで、同期/非同期両方のパターンで動作可能
|
||||
page1 = session.get('https://quotes.toscrape.com/')
|
||||
page2 = session.get('https://quotes.toscrape.com/', impersonate='firefox135')
|
||||
|
||||
# 非同期Sessionの使用
|
||||
# 非同期 Session の使用
|
||||
async with AsyncStealthySession(max_pages=2) as session:
|
||||
tasks = []
|
||||
urls = ['https://example.com/page1', 'https://example.com/page2']
|
||||
@@ -385,34 +385,34 @@ async with AsyncStealthySession(max_pages=2) as session:
|
||||
print(session.get_pool_stats())
|
||||
```
|
||||
|
||||
## CLIとインタラクティブShell
|
||||
## CLI とインタラクティブ Shell
|
||||
|
||||
Scraplingには強力なコマンドラインインターフェースが含まれています:
|
||||
Scrapling には強力なコマンドラインインターフェースが含まれています:
|
||||
|
||||
[](https://asciinema.org/a/736339)
|
||||
|
||||
インタラクティブWeb Scraping Shellを起動
|
||||
インタラクティブ Web Scraping Shell を起動
|
||||
```bash
|
||||
scrapling shell
|
||||
```
|
||||
プログラミングせずに直接ページをファイルに抽出(デフォルトで`body`タグ内のコンテンツを抽出)。出力ファイルが`.txt`で終わる場合、ターゲットのテキストコンテンツが抽出されます。`.md`で終わる場合、HTMLコンテンツのMarkdown表現になります。`.html`で終わる場合、HTMLコンテンツそのものになります。
|
||||
プログラミングせずに直接ページをファイルに抽出(デフォルトで`body`タグ内のコンテンツを抽出)。出力ファイルが`.txt`で終わる場合、ターゲットのテキストコンテンツが抽出されます。`.md`で終わる場合、HTML コンテンツの Markdown 表現になります。`.html` で終わる場合、HTML コンテンツそのものになります。
|
||||
```bash
|
||||
scrapling extract get 'https://example.com' content.md
|
||||
scrapling extract get 'https://example.com' content.txt --css-selector '#fromSkipToProducts' --impersonate 'chrome' # CSSセレクタ'#fromSkipToProducts'に一致するすべての要素
|
||||
scrapling extract get 'https://example.com' content.txt --css-selector '#fromSkipToProducts' --impersonate 'chrome' # CSS セレクタ'#fromSkipToProducts'に一致するすべての要素
|
||||
scrapling extract fetch 'https://example.com' content.md --css-selector '#fromSkipToProducts' --no-headless
|
||||
scrapling extract stealthy-fetch 'https://nopecha.com/demo/cloudflare' captchas.html --css-selector '#padded_content a' --solve-cloudflare
|
||||
```
|
||||
|
||||
> [!NOTE]
|
||||
> MCPサーバーやインタラクティブWeb Scraping Shellなど、他にも多くの追加機能がありますが、このページは簡潔に保ちたいと思います。完全なドキュメントは[こちら](https://scrapling.readthedocs.io/en/latest/)をご覧ください
|
||||
> MCP サーバーやインタラクティブ Web Scraping Shell など、他にも多くの追加機能がありますが、このページは簡潔に保ちたいと思います。完全なドキュメントは[こちら](https://scrapling.readthedocs.io/en/latest/)をご覧ください
|
||||
|
||||
## パフォーマンスベンチマーク
|
||||
|
||||
Scraplingは強力であるだけでなく、超高速です。以下のベンチマークは、Scraplingのパーサーを他の人気ライブラリの最新バージョンと比較しています。
|
||||
Scrapling は強力であるだけでなく、超高速です。以下のベンチマークは、Scrapling のパーサーを他の人気ライブラリの最新バージョンと比較しています。
|
||||
|
||||
### テキスト抽出速度テスト(5000個のネストされた要素)
|
||||
### テキスト抽出速度テスト(5000 個のネストされた要素)
|
||||
|
||||
| # | ライブラリ | 時間(ms) | vs Scrapling |
|
||||
| # | ライブラリ | 時間 (ms) | vs Scrapling |
|
||||
|---|:-----------------:|:---------:|:------------:|
|
||||
| 1 | Scrapling | 2.02 | 1.0x |
|
||||
| 2 | Parsel/Scrapy | 2.04 | 1.01 |
|
||||
@@ -426,29 +426,29 @@ Scraplingは強力であるだけでなく、超高速です。以下のベン
|
||||
|
||||
### 要素類似性とテキスト検索のパフォーマンス
|
||||
|
||||
Scraplingの適応型要素検索機能は代替手段を大幅に上回ります:
|
||||
Scrapling の適応型要素検索機能は代替手段を大幅に上回ります:
|
||||
|
||||
| ライブラリ | 時間(ms) | vs Scrapling |
|
||||
| ライブラリ | 時間 (ms) | vs Scrapling |
|
||||
|-------------|:---------:|:------------:|
|
||||
| Scrapling | 2.39 | 1.0x |
|
||||
| AutoScraper | 12.45 | 5.209x |
|
||||
|
||||
|
||||
> すべてのベンチマークは100回以上の実行の平均を表します。方法論については[benchmarks.py](https://github.com/D4Vinci/Scrapling/blob/main/benchmarks.py)を参照してください。
|
||||
> すべてのベンチマークは 100 回以上の実行の平均を表します。方法論については[benchmarks.py](https://github.com/D4Vinci/Scrapling/blob/main/benchmarks.py)を参照してください。
|
||||
|
||||
## インストール
|
||||
|
||||
ScraplingにはPython 3.10以上が必要です:
|
||||
Scrapling には Python 3.10 以上が必要です:
|
||||
|
||||
```bash
|
||||
pip install scrapling
|
||||
```
|
||||
|
||||
このインストールにはパーサーエンジンとその依存関係のみが含まれており、Fetcherやコマンドライン依存関係は含まれていません。
|
||||
このインストールにはパーサーエンジンとその依存関係のみが含まれており、Fetcher やコマンドライン依存関係は含まれていません。
|
||||
|
||||
### オプションの依存関係
|
||||
|
||||
1. 以下の追加機能、Fetcher、またはそれらのクラスのいずれかを使用する場合は、Fetcherの依存関係とブラウザの依存関係を次のようにインストールする必要があります:
|
||||
1. 以下の追加機能、Fetcher、またはそれらのクラスのいずれかを使用する場合は、Fetcher の依存関係とブラウザの依存関係を次のようにインストールする必要があります:
|
||||
```bash
|
||||
pip install "scrapling[fetchers]"
|
||||
|
||||
@@ -456,7 +456,7 @@ pip install scrapling
|
||||
scrapling install --force # force reinstall
|
||||
```
|
||||
|
||||
これにより、すべてのブラウザ、およびそれらのシステム依存関係とfingerprint操作依存関係がダウンロードされます。
|
||||
これにより、すべてのブラウザ、およびそれらのシステム依存関係とfingerprint 操作依存関係がダウンロードされます。
|
||||
|
||||
または、コマンドを実行する代わりにコードからインストールすることもできます:
|
||||
```python
|
||||
@@ -467,11 +467,11 @@ pip install scrapling
|
||||
```
|
||||
|
||||
2. 追加機能:
|
||||
- MCPサーバー機能をインストール:
|
||||
- MCP サーバー機能をインストール:
|
||||
```bash
|
||||
pip install "scrapling[ai]"
|
||||
```
|
||||
- Shell機能(Web Scraping Shellと`extract`コマンド)をインストール:
|
||||
- Shell 機能(Web Scraping Shell と`extract`コマンド)をインストール:
|
||||
```bash
|
||||
pip install "scrapling[shell]"
|
||||
```
|
||||
@@ -482,15 +482,15 @@ pip install scrapling
|
||||
これらの追加機能のいずれかの後(まだインストールしていない場合)、`scrapling install`でブラウザの依存関係をインストールする必要があることを忘れないでください
|
||||
|
||||
### Docker
|
||||
DockerHubから次のコマンドですべての追加機能とブラウザを含むDockerイメージをインストールすることもできます:
|
||||
DockerHub から次のコマンドですべての追加機能とブラウザを含む Docker イメージをインストールすることもできます:
|
||||
```bash
|
||||
docker pull pyd4vinci/scrapling
|
||||
```
|
||||
またはGitHubレジストリからダウンロード:
|
||||
または GitHub レジストリからダウンロード:
|
||||
```bash
|
||||
docker pull ghcr.io/d4vinci/scrapling:latest
|
||||
```
|
||||
このイメージは、GitHub Actionsとリポジトリのメインブランチを使用して自動的にビルドおよびプッシュされます。
|
||||
このイメージは、GitHub Actions とリポジトリのメインブランチを使用して自動的にビルドおよびプッシュされます。
|
||||
|
||||
## 貢献
|
||||
|
||||
@@ -499,7 +499,7 @@ docker pull ghcr.io/d4vinci/scrapling:latest
|
||||
## 免責事項
|
||||
|
||||
> [!CAUTION]
|
||||
> このライブラリは教育および研究目的のみで提供されています。このライブラリを使用することにより、地域および国際的なデータスクレイピングおよびプライバシー法に準拠することに同意したものとみなされます。著者および貢献者は、このソフトウェアの誤用について責任を負いません。常にウェブサイトの利用規約とrobots.txtファイルを尊重してください。
|
||||
> このライブラリは教育および研究目的のみで提供されています。このライブラリを使用することにより、地域および国際的なデータスクレイピングおよびプライバシー法に準拠することに同意したものとみなされます。著者および貢献者は、このソフトウェアの誤用について責任を負いません。常にウェブサイトの利用規約とrobots.txt ファイルを尊重してください。
|
||||
|
||||
## 🎓 引用
|
||||
研究目的で当ライブラリを使用された場合は、以下の参考文献で引用してください:
|
||||
@@ -515,12 +515,12 @@ docker pull ghcr.io/d4vinci/scrapling:latest
|
||||
|
||||
## ライセンス
|
||||
|
||||
この作品はBSD-3-Clauseライセンスの下でライセンスされています。
|
||||
この作品は BSD-3-Clause ライセンスの下でライセンスされています。
|
||||
|
||||
## 謝辞
|
||||
|
||||
このプロジェクトには次から適応されたコードが含まれています:
|
||||
- Parsel(BSDライセンス)— [translator](https://github.com/D4Vinci/Scrapling/blob/main/scrapling/core/translator.py)サブモジュールに使用
|
||||
- Parsel(BSD ライセンス)— [translator](https://github.com/D4Vinci/Scrapling/blob/main/scrapling/core/translator.py) サブモジュールに使用
|
||||
|
||||
---
|
||||
<div align="center"><small>Karim Shoairによって❤️でデザインおよび作成されました。</small></div><br>
|
||||
<div align="center"><small>Karim Shoair によって❤️でデザインおよび作成されました。</small></div><br>
|
||||
|
||||
Reference in New Issue
Block a user