members

members

スプレッドシート関数IMPORTXMLで複数ページの修正確認を効率化する方法

Tweet

画像元

日常業務の小さな作業を1つ1つ効率化・自動化していくシリーズ第4弾。
今回は同じフォーマットで作成した複数ページにおける一括修正の修正確認を効率化する方法をご紹介します。

定常的な作業はどんどん効率化・自動化していきましょう。

 

複数ページの一括修正を確認する手間

同じフォーマットを用いた同じ要素を修正する場合、ある程度一括置換をするなどで対応できますが、
そのチェックをする際には1つ1つのページを開いて要素を確認する事が多いと思います。

例えば、コラムの「効率化」というカテゴリーの投稿タイトル冒頭に、統一して「【効率化】」をつけたい場合、
そのチェック時には1つ1つのページを開いてチェックしていく必要がありますよね。

私も記事一覧ページから全ページを開いて、確認して、閉じて、を繰り返しやっている時期もありましたが、
それ自体効率化できるのでは?と思い調べてみたところ、スプレッドシート関数で効率化できそうだとわかりました。

実際にやってみたところとても楽だったので本コラムでご紹介します。

 

スプレッドシート関数 IMPORTXML

今回使うスプレッドシート関数IMPORTXMLは、以下の記事でもご紹介しましたが
URLと取得したい要素のXPathを指定することでスクレイピングを行うことができる関数です。

スプレッドシート関数 IMPORTXMLでスクレイピングする方法

 

XPathというのはXML文章中の要素や属性値を指定するための言語で、
指定する際に多少手こずるかもしれませんが、活用できると作業を効率化できます。

詳細は上記記事をご覧ください。

 

IMPORTXMLで複数ページにおける一括修正の確認を効率化する方法

それでは実際にどうやって効率化するのかをご紹介していきます。
今回はわかりやすくメンバーズ採用サイトの「プロフェッショナル・メンバーズ 」を利用しようと思います。

 

スプレッドシートにフォーマットを用意する

まずは以下のような表をスプレッドシートに作成します。

 

記事一覧ページを指定する

まずは記事一覧ページを黄色ハイライトセルに入力します。

 

記事一覧ページから記事URLをスクレイピングする

次に先程入れた記事一覧ページURLをもとに記事のURLを取得してA列に入れていきます。
今回は取得したXPathを少し修正して以下のような関数を入れることで取得できました。
※サイト構造に応じての修正が必要です

ちなみに配列で取得しているので、A5セルに関数を入れるだけでA5以下には自動的に全URLが取得されます。

=importxml($B$2,”//a[@class=’article–link’]/@href”)

なお、IMPORTXMLの使い方は以下記事を参照ください。

スプレッドシート関数 IMPORTXMLでスクレイピングする方法

[基本の使い方]
=IMPORTXML(“URL”, “XPathクエリ”)
ex) IMPORTXML(“https://blog.members.co.jp/”,”//title”)

URLにはスクレイピングしたいサイトのURLを、XPathにはHTMLの特定箇所を指定する文字列を入力します。
なお、URLは文字列指定する場合はダブルクォーテーションを、セル指定をする場合はそのままセル番号のみを入れます。

 

取得したURLから現在のテキストを取得する

続いて、B列には現在のテキストを入れてあげます。
そうすることで前後比較でどう変えたのかがわかりチェックもしやすくなります。

XPathを少し修正して作った以下の関数でB列に修正前テキストを入れてから文字列貼り付けします。

=IMPORTXML(A5,”//div[@class=’main_edition’]/h3[1]”)

 

修正案を入力する

その後、C列に修正案を入れます。
チェックの際に正とするテキストを作成して、チェックの際にミスがないようにします。

なお、依頼時にこのシートを共有して依頼すれば依頼時とチェック時にも差が出ないので良いですね。

 

修正後のテキストをチェックする

最後に、B列に入れたのと同じ関数をD列にも入れてあげます。
そうすることで、修正後に修正版テキストがD列に表示されるようになり、
C列とD列が一致してるかを修正完了連絡をもらったあとに確認すれば一目瞭然です。

 

まとめ

いかがでしたでしょうか。
今回は、定常的な修正のチェック作業を効率化する方法をご紹介しました。
今回ご紹介した作り方以外にも作り方はあるので、方法の1つとして参照頂ければと思います。

 

ラボ活動について

最後に、冒頭の「TECHラボ」について気になった方もいらっしゃるかと思うので簡単に説明しますと、
メンバーズにはラボという「社員同士での自主的な学び/研究活動をする制度」があります。

その1つであるTECHラボでは、実業務の無駄な作業を効率化・自動化するために、
普段業務では使う機会のないプログラミングを学びつつアウトプットをしています。

 

コラム執筆者

桑原佑司(くわはら ゆうじ)

第3ビジネスユニット アカウントサービス第17ユニット所属
2017年4月入社。主にWeb広告運用・Webコンサル・業務フロー改善に従事。
2017年のクリスマスに同期とプログラミング初心者しかいないTECHラボを立ち上げる。TECHラボ代表。
趣味はランニングと服を買うこと。ここ1年はJSでの業務効率化にはまってます。

 

執筆記事

スプレッドシート関数 IMPORTXMLでスクレイピングする方法

【コピペで簡単】Hangouts ChatでリマインドBotを作る

スプレッドシートでGoogle Analyticsの分析作業を自動化する