Image

Wgetのコマンドでクローリングをしてみよう!コマンドだけでクローリング!!

クローリング、スクレイピングについての基礎知識や、UnixのWgetコマンドを確認します。Wgetとは何なのか、使い方について触れながら簡単なクローリングの方法を紹介してみました。Wgetはコマンドだけで簡単なクローリングができるというものです。

Wgetのコマンドでクローリングをしてみよう!!

今回は、Webページ上の情報を収集するのにとても便利な方法である『スクレイピング』と『クローリング』についての記事です。

クローリング、スクレイピングとは何なのかについての説明と、Wgetコマンドの使い方について解説します。

目次   

01. クローラーとは

02. クローリングとスクレイピングとは

03. Wgetによるクローリング

_03. Wgetとは

__03. Wgetの使い方

04. まとめ


01. クローラーとは


クローリング、スクレイピングについて解説する前に、『クローラー』について解説します。

クローラーとは、Webページ上の情報を取得するためのプログラムのことです。

正確にはWebクローラーと呼ばれるもので、スパイダーボットとも呼ばれます。

具体的な例として、GoogleやBingなどのWeb検索エンジンが挙げられます




これらの検索エンジンは、クローラーを使って世界中のWebページを収集しています。その後、索引をつけておくことで、キーワードが検索されたときにすぐ検索結果を表示できるようにしているのです。

この他にも、さまざまなところでクローラーは利用されており、データ収集には欠かせないものとなっています。

しかし、クローラーは大量のデータを収集できる分、使い方を誤ると相手のWebサイトに負荷をかけてしまうため、使用には注意が必要です。


02. PythonとC言語の違いを学ぶ比較学習の流れ


クローリングとはWebページのハイパーリンクを辿って、次々にWebページをダウンロードすること。

・スクレイピングとはダウンロードしたWebページから必要な情報を抜き出すこと


クローリングとは、クローラーを使用してデータを収集することを言います。

そして、スクレイピングとは、Webページから必要な情報を抜き出すことを言います。

この二つは混同されがちですが、全く別のものなのです。

クローリングやスクレイピングを行うにあたって主に使用する言語はPythonです。これは、Pythonには効率よく開発するための強力なフレームワークやライブラリが存在するためです。

Pythonについてはこちらの記事でも触れているので参照してみてください。

Pythonとは?Pythonを使ってできることや作れるもの


03. Wgetによるクローリング


では早速、クローリングについて解説していきます。

Pythonでクローリングを行う前に、まずはUnixコマンドを利用して動作のイメージを掴みましょう。




_03. Wgetとは


Wgetとはなんぞや。と思う人も多いかと思います。

GNU Wget (Wget)とは、Unixにおける代表的なダウンローダーです。HTTP通信やFTP通信を使用して、サーバーやファイルからコンテンツをダウンロードすることができます。

特徴としてクローリング機能があり、複数のファイルやコンテンツを一度にダウンロードすることができます。

macOSでは、homebrewというパッケージマネージャーを導入することで様々なソフトウェアを簡単に導入、管理できるようになります。homebrewを利用してwgetをインストールするとwgetコマンドが利用できるようになります。

homebrewのインストール方法

Ubuntuでは、パッケージマネージャーであるATPを利用してwgetをインストールするとwgetコマンドが使えるようになります。

OSインストール時の設定によってはすでにイントールされている場合もあるようです。

Windowsでは、仮想マシンでUbuntuを使用するとUnixコマンドが利用できます。

Windowsの環境構築についてはここでは省略させていただきます。

今後は、macOSで実行していきます


__03. Wgetの使い方


Wgetは、wgetコマンドの引数にURLを指定することで使用できます。指定したURLにコンテンツがダウンロードされファイルとして保存されます



$ wget https://yoshinashigoto-blog.herokuapp.com


https://yoshinashigoto-blog/ のようにディレクトリを表すURL( /で終わるURL)を指定すると、ダウンロードされたファイル名は index.html となります。



$ wget https://yoshinashigoto-blog.herokuapp.com/


-oオプションでは、ダウンロードしたファイル名を指定できるようになります。

ファイル名として- (ハイフン)を指定すると、ファイルとして保存するのではなく標準出力に出力できるようになります。

コンソール画面に出力したり、パイプで他のコマンドに出力を渡すときに使います。



$ wget https://yoshinashigoto-blog.herokuapp.com/ -o -


その他、よく使うWgetのオプションについて以下の表にまとめました。

こんなのがあるんだな、程度に見ておくといいかもしれません。


オプション説明
 -V, --versionWgetのバージョンを表示する。
 -h, --helpヘルプを表示する。
 -q --quiet進歩状況などを表示しない。
 -O  file, --output-document=filefileに保存する。
 -c, --continue前回の続きからファイルのダウンロードを再開する。
 -r, --recursiveリンクをたどって再帰的にダウンロードする。
 -l depth, --level=depth再帰的にダウンロードするときにリンクを辿る深さをdepthに制限する。
 -w seconds, --wait=seconds再帰的にダウンロードするときにダウンロード間隔としてseconds 秒空ける。
 -np, --no-parent再帰的にダウンロードするときに親ディレクトリをクロールしない。
 -I list, --include list再帰的にダウンロードするときにlistに含まれるディレクトリのみを辿る。
 -N, --timestampingファイルが更新されているときのみダウンロードする。

Wgetのオプションでよく使うもの 


04. まとめ



お疲れ様でした。

ここまで読んでいただきありがとうございました。

今回はクローリングとスクレイピングについてや、Wgetのコマンドの使い方について簡単にまとめました。

今後のためにも身につけておきたいスキルですね