このブログ記事では次を習得できます。
cURLとは?
cURLは、ネットワークプロトコルを介してデータを転送するために使用するコマンドラインツールです。cURL は「Client URL」の略で、「curl」とも表記されます。URL構文を使ってサーバーとのデータ転送を行う一般的なコマンドです。Curl は、無料で使いやすいクライアントサイドのURL転送ライブラリである「libcurl」で稼働します。
curlを使うと有利になる理由は?
このコマンドの汎用性により、curlは次のような様々なユースケースで使用できます。
- ユーザー認証
- HTTP投稿
- SSL接続
- プロキシ対応
- FTPアップロード
curlの最も簡単な「使用例」は、サポートされているプロトコルの1つを使用してウェブサイト全体をダウンロードおよびアップロードすることです。
Curlプロトコル
curlには、サポートされるプロトコルの長いリストがありますが、特定のプロトコルが提供されない場合、デフォルトでHTTPを使用します。対応プロトコルの一覧はこちらです。
curlのインストール
Linuxディストリビューションでは、curlコマンドがデフォルトでインストールされています。
curlがすでにインストールされているかどうかを確認するには?
1.Linuxのコンソールを開きます。
2.「curl」と入力し、「Enter」キーを押します。
3.すでにcurlがインストールされている場合は、次のようなメッセージが表示されます。
4.curlがまだインストールされていない場合は、次のようなメッセージが表示されます。「command not found(コマンドが見つかりません)」その後、ディストリビューションパッケージに変わり、インストールできるようになります(詳細は後述)。
cURLの使い方
Curlの構文は次のように非常に単純です。
例えば、ウェブページwebpage.comをダウンロードしたい場合は、そのまま実行します。
このコマンドを実行すると、ターミナルのウィンドウにそのページのソースコードが表示されます。プロトコルを指定しない場合、curlではHTTPがデフォルトとされます。以下に、特定のプロトコルを定義する方法の例を示します。
://を付け忘れた場合、curlは使いたいプロトコルを推測します。
コマンドの基本的な使い方について簡単に説明しましたが、curlのドキュメントサイトにオプションの一覧があります。これらのオプションは、URLで実行可能なアクションです。オプションを選択すると、リストアップしたURLでどのようなアクションを起こすかをcurlに指示します。URLは、このアクションを実行する必要がある場所をcURLに伝えます。そして、cURLでは、1つまたは複数のURLをリストアップできます。
複数のURLをダウンロードする場合は、それぞれのURLの前に-0をつけ、その後にスペースを入れてください。一行で行うこともできますし、URLごとに分けて書くこともできます。また、ページをリストアップしてURLの一部をダウンロードすることもできます。例:
ダウンロードの保存
curlを使用すると、2種類の方法でURLのコンテンツをファイルに保存できます。
1.-o メソッド:URLが保存されるファイル名を追加できます。このオプションは次のような構成になっています。
2.-O メソッド:ここでは、このオプションによってURL名でファイルを保存できるので、ファイル名を追加する必要はありません。このオプションを使用するには、URLの前に-Oを付けるだけです。
ダウンロードの再開
ダウンロードが途中で止まってしまう場合があります。この場合、コマンドの先頭に -C オプションを追加して次のように書き換えてください。
curlが良く使われる理由
Curlは、複雑な操作のために作られた、まさに「アーミーナイフ」のようなコマンドです。しかし、「wget」や「Kurly」など、もっと単純な作業に適した代替手段もあります。
Curlは、ほぼすべてのプラットフォームで利用可能なため、開発者の間で人気があります。デフォルトでインストールされていることもあります。つまり、実行しているプログラムやジョブが何であれ、curlコマンドは動作するはずです。
また、お使いのOSが10年未満であれば、Curlがインストールされている可能性があります。また、ブラウザでドキュメントを読み、curlのドキュメントを参照することもできます。最近のバージョンのWindowsをお使いの方は、すでにCurlがインストールされていることでしょう。そうでない場合は、Stack Overflowのこの投稿をチェックして、その方法を習得しましょう。
cURLを使ったウェブスクレイピング
プロからのアドバイス:ウェブサイトの規則を尊重しましょう。一般に、パスワードで保護されたコンテンツにアクセスすることは、違法行為とみなされる場合がありますので、絶対におやめください。
ウェブスクレイピングを行う際に、curlを使用して繰り返し処理を自動化することで、面倒な作業を回避することができます。そのためには、PHPを使用する必要があります。以下は GitHubで見つけた例です。
curlを使ってウェブページをスクレイピングする場合、次の3つのオプションを使用する必要があります。
- curl_init($url) -> セッションの初期化
- curl_exec() -> 実行
- curl_close() -> 終了
その他、使用すべきオプションは以下の通りです。
- Curlopt_url -> スクレイピングしたいURLを設定
- Curlopt_returntransfer -> スクレイピングされたページを変数として保存するようにcurlに指示します。(これにより、ページから抽出したかった情報を正確に取得できます。)
手動によるウェブスクレイピング技術にうんざりしていませんか?
Bright Dataは、ボタンをクリックするだけで、ウェブサイト全体や特定のデータポイントにアクセスできる、完全自動のコードレスソリューションを実装しています。