ユーニックス総合研究所

キュレーションサイトの作成

  • 作成日: 2023-12-26
  • 更新日: 2024-01-09

WordPressPHPを用いて他サイトからコンテンツを自動収集するキュレーションサイトを制作しました。
AWSにサーバーを構築し、インフラの整備から開発デプロイ、運用まで担当しました。

キュレーションサイトとは?

キュレーションサイトとは「特定のテーマに絞った情報を整理したサイト」のことで、たとえば音楽と言うテーマなら音楽と言う情報を整理しユーザーに提供し、不動産であれば不動産という情報を整理してユーザーに提供するサイトのことを指します。
「まとめサイト」とも呼ばれることが多く、ネット上には無数のまとめサイトがあふれている現状です。
スクレイピングというWebのコンテンツを収集する技術を使うことで、自動化とも相性が良く、多数のIT企業が参画しているジャンルと言えます。

なにを作りましたか?

当サイトでは主に以下を担当しました。

  • AWS環境の構築
  • スクレイピング
  • WordPressの自動更新化
  • WordPressプラグインのカスタマイズおよび解析
  • WordPressのウィジェット制作
  • 取得データ(画像含む)のフィルタリング処理
  • 取得した住所、日本円、誕生日等のノーマライズ
  • デザイン(HTML/CSS)
  • コンテンツの動的更新(JavaScript/PHP/Ajax)

スクレイピング

スクレイピングはスクレイピング先のサイトに許可を頂いて行いました。
SPAなどではなく普通の動的サイトだったのでスクレイピングに関しては特に問題はありませんでした。

WordPressの自動化

キュレーションサイトの構築にあたってWordPressを自動化する必要がありました。
既存のプラグインの構造を解析し、DBで何が変更されるのかの調査を行い、プラグインを介せずにデータを読み取り/追加/更新/削除出来るようにしました。
それらのCRUDが判明してからはPHPでデータベースに直接アクセスし、スクレイピングで取得したデータをDBに追加するようにしました。
そこまでいけば後は定時実行すればキュレーションサイトが機能しました。
WordPressのDBの構造の解析は骨が折れましたが、慣れてくると抽象化されたテーブルがわかってきて何がどう追加されているのかわかるようになりました。

WordPressプラグインのカスタマイズ

コンテンツのユーザーへの配信は既存のプラグインの力を借りることにしました。
しかし、プラグインの提供する機能だけでは当サイトのお客様の要望に十分に答えられなかったため、プラグインの改造を行いました。
これは1から作るかどうか悩んだのですが、というのも既存プラグインの解析と改造と言うのは、なかなかしんどい案件だからです。
しかしお客様の要望もあって既存プラグインのカスタマイズを行うことにしました。
プラグインのマニュアルもなく、コメントもろくにないソースコードとにらめっこして、何がどう動いているのか1つずつ解析し、全体像の把握に努めました。
今思い出してみると、なかなかしんどかったです。しかし当サイトはめげません。努力と根性でプラグインを解析し、改造を果たしました。

取得データのフィルタリング

スクレイピングではテキストの他に画像も取得します。
しかし不必要な画像も一緒に取得してコンテンツに配信してしまう状態がありました。
それを改善するために画像処理を行って、取得した画像のフィルタリングを行いました。
ヒストグラムやフィルターを駆使して必要な画像と不必要な画像の差を検出し、取捨選択を行いました。

取得データのノーマライズ

スクレイピングで取得したデータをコンテンツとして再配信するわけですが、取得後のデータはそのままでは使いづらい状態になっています。
取得したデータをそのままテキストで配信してしまえばそれで完了しますが、実際には取得したデータに応じてソートしたりとか、フィルターを作るなどの関連作業が必要になります。
そのため取得したデータを再加工して使いやすくし、他の関連機能で使えるようにする必要があります。
当サイトでは↓のデータのノーマライズを行いました。

  • 日本住所
  • 日本円
  • 誕生日

日本住所に関しては専用の日本の住所を解析するパーサーを作成し、対応しました。これがコスト的には一番時間がかかりました。