Scrapy インストール チュートリアル: 入門から習熟まで、具体的なコード例が必要です
はじめに:
Scrapy は、利用可能な強力な Python オープン ソース Web クローラー フレームワークです。 Webページのクローリング、データの抽出、データのクリーニングや永続化などの一連のタスクに使用されます。この記事では、Scrapy のインストール プロセスを段階的に説明し、Scrapy フレームワークを使い始めてから習熟するまでに役立つ具体的なコード例を示します。
1. Scrapy をインストールする
Scrapy をインストールするには、まず Python と pip がインストールされていることを確認してください。次に、コマンド ライン ターミナルを開き、次のコマンドを入力してインストールします。
pip install scrapy
インストール プロセスには時間がかかる場合があります。しばらくお待ちください。権限に問題がある場合は、コマンドの前に sudo
を付けてみてください。
2. Scrapy プロジェクトの作成
インストールが完了したら、Scrapy のコマンド ライン ツールを使用して新しい Scrapy プロジェクトを作成できます。コマンド ライン ターミナルで、プロジェクトを作成するディレクトリに移動し、次のコマンドを実行します。
scrapy startproject tutorial
これにより、現在のディレクトリに「tutorial」という名前の Scrapy プロジェクト フォルダが作成されます。フォルダーに入ると、次のディレクトリ構造が表示されます。
tutorial/ scrapy.cfg tutorial/ __init__.py items.py middlewares.py pipelines.py settings.py spiders/ __init__.py
このうち、 scrapy.cfg
は Scrapy プロジェクトの設定ファイルで、 tutorial
フォルダーは、独自のコードフォルダーです。
3. クローラーを定義する
Scrapy では、スパイダーを使用して Web ページをクローリングし、データを抽出するためのルールを定義します。 spiders
ディレクトリに新しい Python ファイルを作成し、quotes_spider.py
という名前を付けます (実際のニーズに応じて名前を付けることができます)。次に、次のコードを使用して単純なクローラーを定義します。 :
import scrapy class QuotesSpider(scrapy.Spider): name = "quotes" start_urls = [ 'http://quotes.toscrape.com/page/1/', ] def parse(self, response): for quote in response.css('div.quote'): yield { 'text': quote.css('span.text::text').get(), 'author': quote.css('span small::text').get(), } next_page = response.css('li.next a::attr(href)').get() if next_page is not None: yield response.follow(next_page, self.parse)
上記のコードでは、QuotesSpider
という名前のクローラーを作成しました。このうち、name
属性はクローラーの名前、start_urls
属性はクロールする最初のページの URL、parse
メソッドです。クローラーのデフォルトの解析方法であり、Web ページを解析してデータを抽出するために使用されます。
4. クローラーを実行します
コマンド ライン ターミナルで、プロジェクトのルート ディレクトリ (つまり、tutorial
フォルダー) に移動し、次のコマンドを実行してクローラーを起動し、クロールを開始します。 data :
scrapy crawl quotes
クローラーは初期 URL のページのクロールを開始し、定義したルールに従ってデータを解析して抽出します。
5. データの保存
通常は、キャプチャしたデータを保存します。 Scrapy では、Item Pipeline を使用してデータをクリーンアップ、処理、保存できます。 pipelines.py
ファイルに次のコードを追加します。
import json class TutorialPipeline: def open_spider(self, spider): self.file = open('quotes.json', 'w') def close_spider(self, spider): self.file.close() def process_item(self, item, spider): line = json.dumps(dict(item)) + " " self.file.write(line) return item
上記のコードでは、TutorialPipeline
という名前のアイテム パイプラインを作成しました。このうち、open_spider
メソッドは、クローラがファイルの初期化を開始するときに呼び出され、close_spider
メソッドは、クローラが終了してファイルを閉じるときに呼び出されます。 # #このメソッドは、キャプチャされた各データ項目を処理して保存します。 6. Scrapy プロジェクトの構成
settings.py
ファイルでは、Scrapy プロジェクトのさまざまな構成を構成できます。一般的に使用される構成項目は次のとおりです:
以上がScrapy を学ぶ: 基本から上級までの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。