GASを利用してWebスクレイピングをやってみよう②

エクスチュアの岩川です。

前回 スクレイピングの初歩的なやり方を解説させていただきました。

スクレイピングをする際の注意点なども記載しておりますのでご覧になられていない方はこちらをご覧ください。


では早速本題に入りましょう。

前回取得できたデータは以下のようなものになっておりました。

[ 'デジタルマーケティング<br>ビッグデータ分析のExture(エクスチュア)',
  'Search',
  'Extureについて',
  'ソリューション',
  '支援事例紹介',
  'ニュースリリース',
  'エクスチュア株式会社ブログ',
  'デジタルマーケティング<br class="sp">ビッグデータ分析のExture(エクスチュア)' ]

データの形が配列になっています。

よって配列を操作するようなコードを組むだけで問題ありません。

今回はhtmlタグを消すコードを入れてみましょう。

  for(var i = 0 ; i < text.length ; i++){
    text[i] = text[i].replace(/\<[^\>]+\>/," ");
  }

実行してみましょう。するとhtmlタグが消えたデータになっているのを確認できます。

ではこのデータを実際に出力してみましょう。

今回はこちらに書いてある記事を活用しスプレッドシートへ出力してみましょう。

コードは以下のようにしております。

A1セルに配列の最初の値を出力します。

このまま実行してみましょう。

GoogleスプレッドシートのA1セルに出力されておりました。

これでスクレイピング後にGoogleスプレッドシートへ出力可能なラインが完成いたしました。

関数を作成する

しかしここでコード部分を見てみましょう。

現段階は

①簡単なスクレイピングをする

②データを整理する

③簡単な値をGoogleスプレッドシートに出力する

これだけですが結構コードの量としては増えてきましたね。

もっと複雑なコードを記述していこうとなるとこのままでは整理が大変そうです。

もちろんGASは関数を作成することが可能となっております。

作成方法は

function 関数名(){

  // ここに処理を記述しましょう

}

そして呼び出し方法は

関数名();

と至ってシンプルなコードになっております。

では実際にコードを整理していきましょう。

myscrapingという関数を作成し、帰り値で配列の頭を返すようにしました。

これで先ほどと同じような動作になり、後にコードを追加する際に便利になります。

実行・デバッグ方法

さてここで今まで関数を実行するために押していたであろう「実行」や「デバッグ」ボタンを気にしてみましょう。

隣に関数名が出ています。

これをクリックするとなんと以下のように先ほど作成した関数名も出るようになっています。

これはつまり、今はmyfunction関数でmyscrapingを呼び出していますがmyscraping関数を個別に実行することも可能となっています。

これによりデバッグ作業が早くなったり特定の関数のみ実行したいというときにも利用ができます。

Google スプレッドシートの記事でも紹介したボタン機能で関数を呼び出す際にも同様のことが可能です。


今回はスクレイピングのデータをスプレッドシートへ出力する一連の流れと関数周りの解説をさせていただきました。

エクスチュアでは様々な企業様の基本的な悩みから高度な悩みまで丁寧にお手伝いいたします。

是非お気軽にお問合せください。

類似投稿