ホームページ  >  記事  >  バックエンド開発  >  Scrapy を学ぶ: 基本から上級まで

Scrapy を学ぶ: 基本から上級まで

PHPz
PHPzオリジナル
2024-02-19 19:07:06957ブラウズ

Scrapy を学ぶ: 基本から上級まで

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 プロジェクトのさまざまな構成を構成できます。一般的に使用される構成項目は次のとおりです:

    ROBOTSTXT_OBEY
  • : robots.txt プロトコルに準拠するかどうか;
  • USER_AGENT
  • :ユーザー エージェントを設定します。クローラでさまざまなブラウザをシミュレートできます。
  • ITEM_PIPELINES
  • : アイテム パイプラインを有効にして構成します。
  • DOWNLOAD_DELAY
  • : ダウンロードを設定します。回避すべき遅延 ターゲット Web サイトに過剰な負荷を与える;
  • 7. まとめ
上記の手順により、Scrapy のインストールと使用が完了しました。この記事が、Scrapy フレームワークを使い始めてから熟練するまでに役立つことを願っています。 Scrapy のより高度な機能や使い方をさらに学びたい場合は、Scrapy 公式ドキュメントを参照し、実際のプロジェクトに基づいて練習と探索を行ってください。爬虫類の世界での成功を祈っています!

以上がScrapy を学ぶ: 基本から上級までの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。