Featured image of post 【目次】PerlとMooでWebスクレイパーを作ってみよう(全10回)

【目次】PerlとMooでWebスクレイパーを作ってみよう(全10回)

PerlとMooでWebスクレイピングツールを作りながら、Template Methodパターンを自然に学べるシリーズの目次です。全10回の構成で、継承・オーバーライド・フックメソッドを実践的に習得できます。

@nqounetです。

このページは「PerlとMooでWebスクレイパーを作ってみよう」シリーズの目次です。

シリーズ概要

このシリーズでは、Mojo::UserAgentを使ったWebスクレイパーを作りながら、デザインパターンの一つである「Template Methodパターン」を自然に学びます。

対象読者

  • Perl入学式を卒業した方
  • 「Mooで覚えるオブジェクト指向プログラミング」シリーズを読了した方
  • 実務で役立つモダンなPerlを使ってみたい方

学習目標

  • オブジェクト指向プログラミングの原則を深く理解する
  • SOLID原則(特に開放閉鎖原則OCP)を実践する
  • Template Methodパターンを自然に習得する
  • Hollywood Principle(制御の反転)を体験する

技術スタック

  • Perl v5.36以降
  • Moo(オブジェクト指向フレームワーク)
  • Mojolicious(Mojo::UserAgent, Mojo::DOM)

目次

第1回: ニュースサイトから見出しを取得しよう

Mojo::UserAgentでHTTPリクエストを送信し、Mojo::DOMでHTMLから要素を抽出する基本を学びます。

第2回: 天気予報サイトも取得したい!コピペの限界

天気予報スクレイパーをコピペで作成し、コード重複の問題に直面します。

第3回: 共通の処理手順を洗い出そう

「取得→抽出→保存」という共通の処理手順を発見し、関数化で重複を削減します。

第4回: 基底クラスで処理の流れを定義しよう

WebScraperクラスを作成し、scrape()メソッドで処理の骨格を定義。抽象メソッドの概念を導入します。

第5回: サイトごとのスクレイパーを作ろう

extendsで継承し、extract_data()とsave_data()をオーバーライドして具体的な処理を実装します。

第6回: デフォルトの保存処理を用意しよう

save_data()にデフォルト実装を用意し、Hook Methodsの活用方法を学びます。

第7回: データ検証をフックで追加しよう

validate_data()フックメソッドを追加し、データ検証機能を実装します。

第8回: 新しいサイトを追加しよう

ProductScraperを追加し、既存コードを修正せずに拡張できること(OCP)を実証します。

第9回: 完成!Webスクレイパー

全機能を統合し、完成したWebスクレイパーシステムの全体像を確認します。

第10回: これがTemplate Methodパターンだ!

構築してきたものが「Template Methodパターン」だったことを明かし、Strategyパターンとの違いやHollywood Principleを解説します。

関連シリーズ

前提シリーズ

他のデザインパターンシリーズ

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。