Scrapy クローラーを使って新規 Web サイトのデータを分析する
インターネット時代においては、Web サイトから大量のデータが収集され、そのデータをどのように分析やマイニングに活用するかが重要な課題となっています。この記事では、Scrapy クローラー フレームワークを使用して新規 Web サイトのデータをクロールする方法と、Python を使用してデータ分析を行う方法を紹介します。
1. Scrapy フレームワーク
Scrapy は Web サイト データをクロールするための Python フレームワークで、効率的、高速、スケーラブルな方法で Web サイトからデータを抽出できます。 Scrapy は、Spider、Pipeline、DownloaderMiddleware、その他のモジュールを簡単に作成できるオープン ソース フレームワークです。一部のデータ マイニングや大規模なクローリング タスクでは、Scrapy フレームワークが非常に人気があります。
2. 小説サイト
この記事がクロールした小説サイトは、無料オンライン小説閲覧サイト「ビキューゲ」です。この Web サイトでは、小説のコンテンツが章ごとに編成されているため、小説の章のコンテンツを自動的にクロールする必要があり、小説の分類に従ってデータをフィルタリングすることができます。
3. クローラーの設計
Scrapy フレームワークでは、クローラーは非常に重要なモジュールであり、複数のスパイダーを定義することで、さまざまな Web サイトやさまざまなページのデータをクロールできます。この記事で書いたクローラーは主に小説リストと小説章の内容の2つに分かれています。
小説リストとは、小説の分類、名前、作者、ステータスなどの情報を指します。 「ビキューゲ」サイトでは、小説のカテゴリごとにサブページが存在するため、小説一覧を巡回する際には、まず小説のカテゴリのURLを巡回し、その後カテゴリページを巡回して各小説の情報を取得します。
小説の章のコンテンツをクロールするとき、主なことは、各小説の章のディレクトリを取得し、章のディレクトリ内のコンテンツを結合することです。一緒に順番に。 「ビキューゲ」サイトでは、各小説の章ディレクトリにURLが対応しているので、各小説の章ディレクトリURLを取得し、章の内容を順番に取得するだけで済みます。
4. クローラーの実装
クローラーを実装する前に、Scrapy フレームワークをインストールし、Scrapy プロジェクトを作成する必要があります。 Scrapy プロジェクトでは、各クローラーは次の部分を定義する必要があります:
各クローラーには、異なるクローラーを区別するための一意の名前があります。この記事では、クローラーに「novel_spider」という名前を付けます。
クローラの開始点を設定する開始 URL。
start_urls = ['http://www.biquge.info/']
クローラ解析メソッド。このメソッドは、start_urls 内の各 URL によって返されたコンテンツを解析し、そこから有用な情報を抽出します。
このメソッドでは、まず小説一覧ページを解析し、各小説の名前、作者、ステータス、URL 情報を抽出し、この情報を Request オブジェクトを通じて次の解析メソッドに渡します。
def parse(self, response): # Get novel classifications classifications = response.xpath('//div[@class="nav"]/ul/li') for classification in classifications: url = classification.xpath('a/@href').extract_first() name = classification.xpath('a/text()').extract_first() # Get novels in classification yield scrapy.Request(url, callback=self.parse_classification, meta={'name': name})
サブレベルページで、小説コンテンツ、章名、章コンテンツを順番に取得します。そして、小説のタイトル、章名、章の内容情報をItemで渡します。
def parse_chapter(self, response): item = NovelChapter() item['novel_name'] = response.meta['novel_name'] item['chapter_name'] = response.meta['chapter_name'] item['chapter_content'] = response.xpath('//div[@id="content"]/text()').extract() yield item
5. データ分析
データを取得したら、Python および Pandas ライブラリを使用して、取得した新しいデータを分析できます。次のコードは、小説リストに対して Pandas データ分析を実行できます。
import pandas as pd # Load CSV data into dataframe df = pd.read_csv('./novel.csv') # Display novel counts by author's name df.groupby('author_name')[['novel_name']].count().sort_values('novel_name', ascending=False)
6. 概要
Scrapy は、Web サイトからデータを簡単にクロールできる強力なクローラー フレームワークです。この記事では、小説閲覧 Web サイトの例を使用して、Scrapy フレームワークを使用して小説の分類と章のコンテンツを取得し、Python および Pandas ライブラリを使用して取得したデータを分析する方法を紹介します。このテクノロジーは、ニュース、製品情報、ソーシャル メディアなど、他の Web サイトからデータをクローリングするために広く使用されています。
以上がScrapy クローラーを使用して新規 Web サイトのデータを分析するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。