ゼロからWebクローラーを構築する方法

We Are Social とHootsuiteの調査報告書「Global Digital in 2018」によると、世界中のインターネットユーザーの数は、2017年から7%増加して40億を超えました。世界の人口は約76億人、インターネット利用者は約40億人で、総人口の53%に相当します。

インターネットの普及により、電子メール、ショッピングサイトでの買い物、スマートフォンを使った情報の検索や、ブログへの書き込みなど、インターネットは私たちの私生活に浸透し、日常生活に欠かせないライフラインとなりつつあります。私たちがインターネット上で行うことも大な量の「ユーザーデータ」を生成しています。このようなデジタル変換は、データの収集、保存、分析の方法に新たな課題をもたらしました。

Webクローラー(スパイダーやスパイダーボットとも呼ばれる)を構築することは、ビッグデータセットを集約するためのスマートなアプローチです。この記事では、次の質問に取り組んでいきます。

 

 

 

1) Webクローラーとは?

Webクローラーは、インターネット上のWebサイトのコンテンツを索引付けすることによって動作するインターネットボットです。これは、コンピュータ言語で書かれたプログラムまたはスクリプトであり、インターネットから自動的に情報やデータを取得するものです。

 

 

2) Webクローラーの種類&機能は?

さまざまなアプリケーションに応じて、Webクローラーには、検索エンジンクローラー、定点観測用クローラーSEO対策クローラーの4つのタイプがあります。

 

サイトを巡回して、そのサイト内の文字や画像を収集して、検索用元データとして蓄積するためのクローラです。これはもっとも知れている利用方法です。

著名な検索エンジンクローラーは以下の通りです。

· Googlebot(Google

· Yahoo Slurp(日本以外のYahoo!

· Baiduspider百度

· Yetibot(Naver

 

 

定点観測と言えば、決まったサイトの、決まったページのみを定期的に巡回して、サイトの新着情報、更新情報を取得するためのクローラです。例えば、複数の価格サイトから、商品ごとの価格データを取得ことで、毎週の価格変動を分析し、価格、価格増減等をまとめた販売戦略資料を自動作成できます。

 

 

 

 SEOにおいて、クローラーはページをインデックスすることで、検索結果にページを表示させるという役割があります。なので、クローラーがサイト内のどのページを読み込んでいるかについては、SEO対策において改善策を練るための指針の1つになります。「Google Search Console」というGoogleが提供している無料ツールがあります。このツールを用いることで、クローラーの行動に関して詳細な情報を入手することが可能です。

 

 

 

 

 

 

3) Webクローラーを構築するには?

プログラミング言語を使う(例:Python

プログラミング言語を使ってWebクローラーを構築したいと思っている非プログラマーにとって、PHPJava、C / C ++と比べ、Pythonは最も簡単なものです。Pythonの文法は、英語を読める人なら誰でも簡単で分かりやすいです。

以下はPythonで書かれたWebクローラーの簡単な例です。

import Queue

initial_page = "http://www.renminribao.com"

 

url_queue = Queue.Queue()

seen = set()

 

seen.insert(initial_page)

url_queue.put(initial_page)

 

while(True):

       if url_queue.size()>0:

            current_url = url_queue.get()

            store(current_url)

            for next_url in extract_urls(current_url):

                  if next_url not in seen:

                       seen.put(next_url)

                       url_queue.put(next_url)

       else:

              break

 

プログラミングの知識がない初心者として、Pythonを学び、Webクローラーを構築する書くことに時間と労力を費やすことが絶対必要です。それにこの過程は数ヶ月続くかもしれません。

 

 

Webスクレイピングツールを使う(例:Octoparse

初心者が短時間でWebクローラーを作成したい場合は、Octoparseのような視覚的なWebスクレイピングソフトウェアを検討することをお勧めします。これはコーディングを必要とないWebスクレイピングツールで、無料のバージョンで提供されています。他のWebスクレイピングツールと比べて、OctoparseはWebサイトからデータをすばやく取得するためのコスパいいソリューションとなります。

 

Octoparseで Webクローラーを構築する

1. 超初心者向けのテンプレートモード

Octoparseのソフトには数十種類のあらかじめ作成されたテンプレートがあり、瞬時にデータを取得できて、スクレイピングタスクを設定する必要はありません。Octoparseの新しいタスクテンプレートは、誰でも簡単にWebスクレイピングを利用できるように設計されています。テンプレートを使用すると、タスクの作る学習時間を短縮し、すぐにデータを取得できます。この時点でテンプレートはAmazonIndeedInstagram、Twitters、YouTube食べログなど多くの人気サイトがカバーされています。

 

 

2. 提示ガイドがあるウィザードモード

Octoparseのウィザードモードには、「List or Table」、「List and Detail」、「Single Page」の3つのテンプレートを用意していて、ユーザーが段階的にデータをスクレイピングする際のガイドとなります。ウィザードモードは特定のページ構造だけで機能し、ユーザーがWebページの構造を正しく把握する上に、どのデータフィールドを抽出したいかをOctoparseに伝える必要があります。

 

 

3. 複雑なスクレイピングできるカスタマイズモード

テンプレートがなく、webサイトが複雑な場合、テンプレートモードとウィザードモードは私たちが望むスクレイピング要求に満たすことはできません。したがって、複雑な構造を持つWebサイト(ログインや検索が必要なサイトなど)では、より柔軟なワークフローを設定できるカスタマイズモードをお勧めします。カスタマイズモードはJavaScriptAJAXなど動的なサイトにも対応できる自由度の高く強力なWebスクレイピングモードです。

Octoparseを使ってWebクローラーを構築する方法の例を示します。[VEDIO:Amazonからの製品情報をスクレイピングする(Octoparse 7.X)]

 

 

 

4) まとめ

このデータ欲しいな、と思った時にすぐデータ収集できるかどうかは、今後のビジネスにおいて大きな影響をあたえるでしょう。「Python、ちょっと難しいな」と思われた方、Octoparseのようなスクレイピングツールはいかがでしょうか? 忙しくても、時間がなくても、スクレイピングスキル習得への道のりに役立つと思いますよ。