ホームページ >バックエンド開発 >Python チュートリアル >Scrapy を使用して Douban の書籍とその評価とコメントをクロールする方法は?
インターネットの発展に伴い、人々は情報を得るためにインターネットにますます依存するようになりました。本好きにとって、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 つの関数を実装します。
このプログラムでは、まず 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 サイトの他の関連記事を参照してください。