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コマンドが利用できるようになります。
Ubuntuでは、パッケージマネージャーであるATPを利用してwgetをインストールするとwgetコマンドが使えるようになります。
OSインストール時の設定によってはすでにイントールされている場合もあるようです。
Windowsでは、仮想マシンでUbuntuを使用するとUnixコマンドが利用できます。
Windowsの環境構築についてはここでは省略させていただきます。
今後は、macOSで実行していきます。
__03. Wgetの使い方
Wgetは、wgetコマンドの引数にURLを指定することで使用できます。指定したURLにコンテンツがダウンロードされファイルとして保存されます。
https://yoshinashigoto-blog/ のようにディレクトリを表すURL( /で終わるURL)を指定すると、ダウンロードされたファイル名は index.html となります。
-oオプションでは、ダウンロードしたファイル名を指定できるようになります。
ファイル名として- (ハイフン)を指定すると、ファイルとして保存するのではなく標準出力に出力できるようになります。
コンソール画面に出力したり、パイプで他のコマンドに出力を渡すときに使います。
その他、よく使うWgetのオプションについて以下の表にまとめました。
こんなのがあるんだな、程度に見ておくといいかもしれません。
オプション | 説明 |
-V, --version | Wgetのバージョンを表示する。 |
-h, --help | ヘルプを表示する。 |
-q --quiet | 進歩状況などを表示しない。 |
-O file, --output-document=file | fileに保存する。 |
-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のコマンドの使い方について簡単にまとめました。
今後のためにも身につけておきたいスキルですね。