Scrapy-shell
スクレイピー-シェル
説明
Scrapyシェルを使用すると、スパイダーを使用せずに、エラーのないコードでデータをスクラップできます。 Scrapyシェルの主な目的は、抽出されたコード、XPath、またはCSS式をテストすることです。 また、データをスクレイピングするWebページを指定するのにも役立ちます。
シェルの構成
シェルはhttps://ipython.org/[IPython](インタラクティブコンピューティングに使用)コンソールをインストールすることで設定できます。これは自動補完、色付き出力などを提供する強力なインタラクティブシェルです。
Unixプラットフォームで作業している場合は、IPythonをインストールすることをお勧めします。 IPythonにアクセスできない場合は、https://www.bpython-interpreter.org/[bpython]を使用することもできます。
SCRAPY_PYTHON_SHELLと呼ばれる環境変数を設定するか、次のようにscrapy.cfgファイルを定義することにより、シェルを構成することができます-
シェルを起動する
スクレイピーシェルは、次のコマンドを使用して起動することができます-
_url_は、データのスクレイピングが必要なURLを指定します。
シェルを使用する
シェルは、次の表で説明するように、いくつかの追加のショートカットとScrapyオブジェクトを提供します-
利用可能なショートカット
シェルは、プロジェクトで次の利用可能なショートカットを提供します-
Sr.No | Shortcut & Description |
---|---|
1 |
shelp() ヘルプオプションで使用可能なオブジェクトとショートカットを提供します。 |
2 |
fetch(request_or_url) 要求またはURLからの応答を収集し、関連するオブジェクトが適切に更新されます。 |
3 |
view(response) 観察のためにローカルブラウザで指定されたリクエストの応答を表示し、外部リンクを正しく表示するために、応答本文にベースタグを追加します。 |
利用可能なスクレイピーオブジェクト
シェルは、プロジェクトで次の利用可能なスクレイピーオブジェクトを提供します-
Sr.No | Object & Description |
---|---|
1 |
crawler 現在のクローラーオブジェクトを指定します。 |
2 |
spider 現在のURLにスパイダーがない場合、新しいスパイダーを定義することでURLまたはスパイダーオブジェクトを処理します。 |
3 |
request 最後に収集されたページの要求オブジェクトを指定します。 |
4 |
response 最後に収集されたページの応答オブジェクトを指定します。 |
5 |
settings 現在のScrapy設定が提供されます。 |
シェルセッションの例
scrapy.orgサイトをスクレイピングしてから、説明どおりにreddit.comからデータのスクレイピングを開始しましょう。
先に進む前に、まず次のコマンドに示すようにシェルを起動します-
上記のURLを使用している間、Scrapyは使用可能なオブジェクトを表示します-
次に、次のように示されているオブジェクトの動作から始めます-
スパイダーからシェルを呼び出して応答を検査する
スパイダーから処理された応答は、その応答を取得する予定がある場合にのみ検査できます。
例えば-
上記のコードに示すように、次の関数を使用して、スパイダーからシェルを呼び出して応答を検査できます-
さて、スパイダーを実行すると、次の画面が表示されます-
次のコードを使用して、抽出されたコードが機能しているかどうかを調べることができます-
出力を次のように表示します
上記の行には、空白の出力のみが表示されています。 今、あなたは次のように応答を検査するためにシェルを呼び出すことができます-
応答を次のように表示します