読者です 読者をやめる 読者になる 読者になる

ユーザーへ正確に情報を届けるために、VASILYエンジニアが行っていること。〜テックブログを公開しました!〜

こんにちは、広報の坂井です。

本日4月10日(月)、VASILYのテックブログが公開されました。タイトルは『数百サイトのクローラーを効率よく運用する仕組み』担当は、バックエンドエンジニアの高木です!

tech.vasily.jp

f:id:vasilyjp:20170404153625j:plain

今回も、どんなことが書いてあるのか解説してもらいましょう!


 ー 今回も、先日公開された『Docker / Apache Mesos / Marathon による3倍速いIQONクローラーの構築』と同じくクローラーネタですね?

はい、まずは「クローラー」についておさらいしましょう。

IQONでは、数百以上の提携ECサイトから毎日数百万点の商品情報を集めています。これをクローラーと呼ばれるプログラムが自動で巡回し、収集してくれています。

前回は「速くクロールすること」に注目していましたが、今回は「正しくクロールすること」に注目しています。

 

「正しくクロールする」とは、具体的にどういったことでしょうか?

IQONでは、「正常にクローラーが稼働している状態」を、以下の2つで判断しています。

  1. 全ての商品がクロールされている
  2. 正しい商品情報がクロールされている

クロール元の提携ECサイトから得られる全ての商品ページを取得し、なおかつタイトル・価格・ブランド情報や在庫情報などを記載されている内容のまま、掲載されていなければいけません。それを、クローラーの作成時と運用時に分けて仕組みを説明しています。

 

なるほど。作成時の仕組みはどんなことを紹介しているんですか?

クロール元のECサイトのリニューアルに強いクローラーを作るコツを紹介しています。

今すぐ使える方法を紹介しているので、社内のエンジニアさんにもぜひ見てもらってくださいね!

 

では、運用について教えていただけますか?

はい。クローラーを作成した後も、クロール元のECサイトのリニューアルなどにより、正しいデータが取得できなくなることが多々あります。

この異常を未然に防ぐことは難しいため、いち早く異常を検知し修正することが大事です。

VASILYではクローラーの異常を検知するために、以下3つのチェックを行なっています。

  • 商品詳細総ページ数に変動がないか
  • 新商品の追加数に変動がないか
  • パースエラーが発生していないか

まず、「商品詳細総ページ数に変動がないか」です。IQONのクローラーは、毎日提携ECサイトの全商品詳細ページを取得しています。ECサイトの商品総数は日々多少の増減はあるものの、大幅に変化することはあまりありません。

そこで、毎日の商品詳細総ページ数を監視し、大幅な変化が見られるサイトがないかをチェックすることで、全ての商品がクロールされていることを保証しています。

次に、「新商品の追加数に変動がないか」です。ECサイトの中には、新商品が毎日追加されるサイトもあれば、更新頻度が低いサイトもあり、商品追加の頻度は各ECサイトごとに様々です。

そこで、過去の新商品追加が0である日が最大何日続いていたかを基準とし、その連続日数を超えている場合を検知する、というチェックを行っています。

また大幅な減少を検知するために、毎日アイテム追加が行なわれているサイトが急に新規アイテム追加数が0になった場合も検知しています。

f:id:vasilyjp:20170404161853j:plain

そして、「パースエラーが発生していないか」です。パースとは、ページを解析して必要な情報を取得することをいいます。

Bigquery という、ビッグデータを解析するサービスにクロールした結果を送り活用することで、エラーがあった場合に検知することができ、修正を行っています。

 

仕組み化することで抜け目なく情報を取得し、運用ができるんですね!

はい、価格や在庫情報がECサイトと違う場合、ユーザー体験に損失を与えてしまうので、全ての商品が正しい情報で掲載されていることは、とても大切なことです。数百を超えるクローラーを使って提携する全ECサイトを巡回しているので、この量を抜け目なく運用するために仕組み化はとても重要です!


ありがとうございました!VASILYでは、仕組み化してチーム内で運用することで、正しい情報をユーザーの皆さまへお届けしています!

現在、18年新卒や、中途、インターンの募集を行っています。気になる方はぜひ、こちらをご覧ください。

www.wantedly.com

 

ご応募お待ちしております!

 

【お問い合わせ】
株式会社VASILY 広報担当
press@vasily.jp