ホームページ >バックエンド開発 >Python チュートリアル >Scrapy を使用して Douban の書籍とその評価とコメントをクロールする方法は?

Scrapy を使用して Douban の書籍とその評価とコメントをクロールする方法は?

WBOY
WBOYオリジナル
2023-06-22 10:21:091770ブラウズ

インターネットの発展に伴い、人々は情報を得るためにインターネットにますます依存するようになりました。本好きにとって、Douban Booksは欠かせないプラットフォームとなっています。さらに、Douban Books では、書籍の評価やレビューも豊富に提供されており、読者が書籍をより包括的に理解できるようになります。ただし、この情報を手動で取得することは、干し草の山から針を見つけることに似ており、現時点では、Scrapy ツールを使用してデータをクロールできます。

Scrapy は、Web サイトからデータを効率的に抽出するのに役立つ Python ベースのオープンソース Web クローラー フレームワークです。この記事では、手順に焦点を当てて、Scrapyを使用してDouban書籍をクロールする方法とその評価とコメントを詳しく紹介します。

ステップ 1: Scrapy をインストールする

まず、Scrapy をコンピュータにインストールする必要があります。 pip (Python パッケージ管理ツール) をインストールしている場合は、ターミナルまたはコマンド ラインに次のコマンドを入力するだけです:

pip install scrapy

このようにして、Scrapy がコンピュータにインストールされます。エラーまたは警告が発生した場合は、プロンプトに従って適切な調整を行うことをお勧めします。

ステップ 2: 新しい Scrapy プロジェクトを作成する

次に、ターミナルまたはコマンド ラインに次のコマンドを入力して、新しい Scrapy プロジェクトを作成する必要があります:

scrapy startproject douban

Thisコマンドは、現在のディレクトリに douban という名前のフォルダーを作成します。このフォルダーには、Scrapy の基本的なファイルとディレクトリ構造が含まれています。

ステップ 3: クローラー プログラムを作成する

Scrapy では、Web サイトからデータを抽出する方法を Scrapy に指示するクローラー プログラムを作成する必要があります。したがって、douban_spider.py という名前の新しいファイルを作成し、次のコードを記述する必要があります。

import scrapy

class DoubanSpider(scrapy.Spider):
    name = 'douban'
    allowed_domains = ['book.douban.com']
    start_urls = ['https://book.douban.com/top250']

    def parse(self, response):
        selector = scrapy.Selector(response)
        books = selector.xpath('//tr[@class="item"]')
        for book in books:
            title = book.xpath('td[2]/div[1]/a/@title').extract_first()
            author = book.xpath('td[2]/div[1]/span[1]/text()').extract_first()
            score = book.xpath('td[2]/div[2]/span[@class="rating_nums"]/text()').extract_first()
            comment_count = book.xpath('td[2]/div[2]/span[@class="pl"]/text()').extract_first()
            comment_count = comment_count.strip('()')
            yield {'title': title, 'author': author, 'score': score, 'comment_count': comment_count}

上記のコードは 2 つの関数を実装します。

  1. Douban Books のトップ 250 ページにある本のタイトル、著者、評価、レビュー数。
  2. クロールされたデータを辞書の形式で返します。

このプログラムでは、まず DoubanSpider クラスを定義し、クローラーの名前、ドメイン名、およびクローラーがアクセスを許可される開始 URL を指定する必要があります。 parse メソッドでは、scrapy.Selector オブジェクトを通じて HTML ページを解析し、XPath 式を使用して書籍に関する関連情報を取得します。

データを取得した後、yield キーワードを使用して、辞書形式でデータを返します。ここでの yield キーワードは、関数をジェネレーターに変換して、一度に 1 つのデータを返す効果を実現することです。 Scrapy では、ジェネレーターを定義することで、Web サイトデータの効率的なクローリングを実現できます。

ステップ 4: クローラー プログラムを実行する

クローラー プログラムを作成した後、ターミナルまたはコマンド ラインで次のコードを実行してクローラー プログラムを開始する必要があります:

scrapy crawl douban -o result.json

This この命令の機能は、douban という名前のクローラーを開始し、クロールされたデータを JSON 形式で result.json ファイルに出力することです。

上記の 4 つの手順により、Douban の書籍とその評価とレビュー情報を正常にクロールできます。もちろん、クローラー プログラムの効率と安定性をさらに向上させる必要がある場合は、他の最適化と調整も行う必要があります。例: 遅延時間の設定、アンチクローリング機構の防止など。

つまり、Scrapy を使用して Douban の書籍とその評価、レビュー情報をクロールするのは、比較的簡単で興味深い作業です。データ クローリングと Python プログラミングに興味がある場合は、プログラミング スキルを向上させるために、他の Web サイトからのデータ クローリングをさらに試すことができます。

以上がScrapy を使用して Douban の書籍とその評価とコメントをクロールする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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