【今利用されるコマンド】curlコマンドを使いこなせないかたへ

Curlコマンドは、Webスクレイピングではよくよく利用するコマンドです。 また、手軽に HTTPリクエストしたくなる場合にも利用ができます。

同様のコマンドにwgetがあるが、色々できるようなので改めて調べてみた。

最近のLinuxには初めからcurlがインストールされています。

1.URLをパラメータにしてそのコンテンツを標準出力させるのが、基本的な使い方。

$ curl http://www.google.co.jp

2.ファイルに保存したければ

リダイレクトを使う または「-o」オプションを指定することで、保存ができます。

リダイレクト

$ curl http://www.example.com/ > example.html

「-O」オプション

curl -O http://ftp.gnu.org/gnu/wget/wget-1.18.tar.gz

URLに、file1、file2、file3……のように連番が使われている場合は、 「[1-100]」のようにまとめて指定することができます。

curl -O ftp://ftp.numericals.com/file[1-100].txt

3.プロキシ経由でアクセスする

curl -x プロキシサーバ:ポート番号 http://www.google.co.jp

認証が必要な場合、以下のようにユーザ名・パスワードを指定する

curl -x プロキシサーバ:ポート番号 --proxy-user ユーザ名:パスワード http://www.google.co.jp

4.POST送信をする場合

POSTするには -d オプションつけれよいです。

curl -d name=yoshilover http://www.google.co.jp

※HTTPのPOSTとは、 リクエストの送り方が違います。GETとPOSTがあります。

POSTでサーバにデータを送信する際は、リクエストボディにデータが記述されます。

詳しくは、下述します。


・HTTP通信で、サーバへ情報を登録する時に使用する(データベースへの格納など) ・データ量が多い場合(GETでのデータ送信量制限を超えてしまう場合) ・バイナリデータを送信したい場合 ・他の人に見られたくない情報を送る場合(パスワードなど)


5.ヘッダー情報を取得する

オプションで-I を利用する

curl -I http://google.com/

6.BASIC認証の場合

-uを利用します。

curl -u username:password http://www.example.com/member/

7.SessionからCookieを取得して使用する場合

-bオプションを利用します。

curl -b name=value http://example.com

複数のCookie を送信するには

curl -b 'name=1&arg=value' http://example.com/

複数書くときに、- b を複数記述しても動作しない。

8.curlコマンドで、SSL証明書のエラーが出ても無視して、アクセスする

SSL証明書を無視する。 オレオレ証明書を使っているWebサーバーにアクセスする時に必要となる。

curl -k http://foo.com/

まとめ

その他にも利用方法ありますが、纏め切れないのであとで更新します。