ホームページ >バックエンド開発 >Python チュートリアル >Scrapy フレームワークの実践: Jianshu Web サイトのデータをクロールする

Scrapy フレームワークの実践: Jianshu Web サイトのデータをクロールする

WBOY
WBOYオリジナル
2023-06-22 09:36:561341ブラウズ

Scrapy フレームワークの実践: Jianshu Web サイト データのクロール

Scrapy は、World Wide Web からデータを抽出するために使用できるオープン ソースの Python クローラー フレームワークです。この記事では、Scrapy フレームワークを紹介し、それを使用して Jianshu Web サイトからデータをクロールします。

  1. Scrapy のインストール

Scrapy は、pip や conda などのパッケージ マネージャーを使用してインストールできます。ここでは、pip を使用して Scrapy をインストールします。コマンドラインに次のコマンドを入力します:

pip install scrapy

インストールが完了したら、次のコマンドを使用して Scrapy が正常にインストールされたかどうかを確認できます:

scrapy version

次のようなメッセージが表示される場合は、 「Scrapy x.x.x - アクティブなプロジェクトがありません」という出力、Scrapy は正常にインストールされました。

  1. Scrapy プロジェクトの作成

Scrapy の使用を開始する前に、Scrapy プロジェクトを作成する必要があります。コマンド ラインで次のコマンドを入力します。

scrapy startproject jianshu

これにより、現在のディレクトリに「jianshu」という名前の Scrapy プロジェクトが作成されます。

  1. Scrapy クローラーの作成

Scrapy では、クローラーは Web サイトから抽出されたデータを処理するコンポーネントです。 Jianshu Web サイトを分析し、クローラーを作成するために Scrapy Shell を使用します。

コマンド ラインで次のコマンドを入力します。

scrapy shell "https://www.jianshu.com"

これにより、Scrapy シェルが起動します。ここで、Jianshu Web サイトのページ ソース コードと要素を表示して、セレクターを作成できます。昇降補助具 。

たとえば、次のセレクターを使用して記事のタイトルを抽出できます:

response.css('h1.title::text').extract_first()

次のセレクターを使用して記事の著者を抽出できます:

response.css('a.name::text').extract_first()

Scrapy でテスト済みシェル セレクターを選択した後、クローラー用の新しい Python ファイルを作成できます。コマンド ラインで次のコマンドを入力します:

scrapy genspider jianshu_spider jianshu.com

これにより、「jianshu_spider」という名前の Scrapy クローラーが作成されます。 Scrapy Shell でテストしたセレクターをクローラーの .py ファイルに追加し、抽出するデータを指定できます。

たとえば、次のコードは、Jianshu Web サイトのホームページにあるすべての記事のタイトルと著者を抽出します。

import scrapy

class JianshuSpider(scrapy.Spider):
    name = 'jianshu_spider'
    allowed_domains = ['jianshu.com']
    start_urls = ['https://www.jianshu.com/']

    def parse(self, response):
        for article in response.css('li[data-note-id]'):
            yield {
                'title': article.css('a.title::text').extract_first(),
                'author': article.css('a.name::text').extract_first(),
            }
  1. Scrapy クローラーを実行し、結果を出力します。
次に、Scrapy クローラーをコマンド ライン モードで実行し、結果を JSON ファイルに出力します。コマンド ラインで次のコマンドを入力します。

scrapy crawl jianshu_spider -o articles.json

このコマンドはクローラーを実行し、出力データを「articles.json」という JSON ファイルに保存します。

    結論
この記事では、Scrapy フレームワークを紹介し、それを使用して Jianshu Web サイトからデータをクロールしました。 Scrapy フレームワークを使用すると、Web サイトからのデータ抽出が簡単になり、Scrapy はその同時実行性とスケーラビリティにより、大規模なデータ抽出アプリケーションに拡張できます。

以上がScrapy フレームワークの実践: Jianshu Web サイトのデータをクロールするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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