Website Explorerで出力したExcelのサイトデータをGASでディレクトリマップに自動整形する

schedule Published
published_with_changes Updated
Category folderMake
format_list_bulleted Contents

今回は、古くからある「Website Explorer」というツールを使って出力したデータを、GASでディレクトリマップに近い形に自動整形できるよう頼まれて作ったものを紹介します。

Website Explorerとは

仕事では数万ページ以上あるWebサイトのリニューアルが普通に発生しますが、そのサイトのディレクトリマップやコンテンツマップなどは提供されないことがほとんどです(なんで?)。そこでツールを使って現状のサイトのコンテンツの種類やページ数などを調べますが、「Website Explorer」はサイトの構造解析ができる超老舗ツールです。

仕事では有償ツールが導入されているので使ってませんが、昔はかなりお世話になってました。今でもずっと使用している人もいます。(歴戦の古参Webディレクターの方に頼まれて作ったものなので、使われている証拠ですね。)

構造解析結果はエクセルで出力することができます。
実際に存在するサイトのデータは憚られるので、架空のサイトのデータとして出力イメージを作ったものが下記となります。架空サイトなので、ページ数が少ないのはご容赦ください。

Website Explorerエクセル出力イメージ
(出力設定で変わります)

ECみたいな商品データに基づくページなら良いのですが、単純なコンテンツデータが大量にある場合、今あるページをどうするか、どうやって移行するかを考えるのが、元のサイトの作り次第で凄い面倒ですよね。。

ディレクトリマップとは

基本的には下記のようなイメージのもので、必要な項目や採番方法はプロジェクトによって適宜調整します。

ディレクトリマップイメージ

まぁ無理にこの形に整形しなくても良いのですが。。
視覚的に見やすくするためにこういった形にする場合、大量にコンテンツの種類やページがあると結構面倒です。

面倒でつまらない資料作成といえば、GAS(Google Apps Script)の出番です!
プロジェクトによって装飾や項目は変わりますが、汎用的なところは自動化したいところです。

Google Apps Scriptとは、Googleによって開発されたスクリプトプラットフォームである軽量のアプリケーション開発のためのGoogleのワークスペースプラットフォーム。 主にGoogleのサービスを自動化するスクリプト言語である。

Googleスプレッドシートで主に使われるが、それ以外でも利用ができる。非常に適応範囲が広いので、例えば、SNSに返信が届いた場合Gmailに届ける。Gmailで期限の近いタスクを自分のSlackで表示する等のこともできる。

出典:フリー百科事典『ウィキペディア(Wikipedia)』

作ったGASの紹介(スプレッドシート+GASの公開リンクあり)

その場限りで書いたものですが、コードを書く前の設計らしきメモが残っていたので紹介します。

  1. ① 貼り付けたデータのある範囲(最終行と最終列)を取得
  2. ② 背景色が白か無地以外の行を削除する
  3. ③ "index.html"がある場合は"index.html"を削除
  4. ④ "/"の数で判断して、指定列に階層レベルの値を入力
  5. ⑤ URLの文字列と階層レベルの値で並び替え
  6. ⑥ 重複行の削除
  7. ⑦ 階層レベルに合わせて列を挿入
  8. ⑧ 階層レベルに合わせてページタイトルをずらす
  9. ⑨ Website Explorerの出力データからコピーしてきた時の枠線を全て削除

悲しいことに書いたコードについては全く覚えていませんが、設計メモにしたがって頑張って書いています。ノンプログラマーの書いたクソコードですので、ご容赦ください。

non-programmer(ノンプログラマー)

プログラム開発を専門にする職種ではないが,自分の業務遂行上必要にせまられてコンピュータを利用し,そのためにプログラムを作成しなければならないような人のこと

Weblio英和辞書open_in_new

書いたものを試した動画です。

Googleスプレッドシート+GASの公開リンク

シートとGASのコードは下記リンクで公開しています。
リンク先ではご自身のGoogleアカウントにてコピー作成ができるので、コピー後のファイルでコードの中身を見ることができます。

自分で普段使いをしていないので、使い込んでからの調整はしていませんが、対象のサイトによって調整が必要かもしれません。このシートをそのまま使いたいケースの人は少ないと思いますが、コードに初めて触れる方には少し参考になる部分もあるかなと思います。

おわりに

非エンジニアでも効率化できるレベルの仕事は沢山あるので、GAS未経験の方は自分が楽をするために活用してみてはいかがでしょうか。

GASのプロを目指すというなら別でしょうが、ちょっとした雑務の効率化なら、公式ドキュメントopen_in_newで必要な情報を集める程度で良いと思います。