それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

curl でよく使う設定をまとめる ~/.curlrc

curl の基本設定ファイルを作ることが出来る

~/.curlrc

Default config file, see -K, --config for details.

.curlrc に書く書き方は -K で指定する config ファイルと同じ

curl の毎回指定するのめんどくさいオプションを書いておくと楽

とくに、CookieやUser-Agentなど毎回付けるのが面倒なので、config を作ると楽になる。

とりあえず作った

## デフォルトでつけるよくあるヘッダ
header = "Accept-Encoding: gzip, deflate, sdch"
header = "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76 Safari/537.36"
header = "X-Config-File: ~/.curlrc"

--compressed

X-Config-File は 自分でも curlrc をつけていることを忘れることがあるので、-v した時に気づくように追加しておいた。

gzip / deflate 圧縮を有効にする

header = "Accept-Encoding: gzip, deflate, sdch"
--compress

gzip/deflate で転送しつつ、 --compress で 圧縮されたレスポンスを展開して取得して表示する。

2017-02-15 追加

Cookie も毎回指定するならめんどくさいので、設定に書くことにした。

## cookie
cookie-jar =  /Users/takuya/.curl_cookies
cookie     =  /Users/takuya/.curl_cookies

設定の書き方

どうやらこういう書き方をするといいらしい。

-c path--cookie-jar path とも書くことが出来る。これを cookie-jar = path と書くことが出来る。

これは以下のように読み替えていけばいい

  • -c path
  • --cookie-jar path
  • cookie-jar = path ← 設定ファイル

同じように -b のオプションも同じですね。

  • -b path
  • --cookie path
  • cookie = path ← 設定ファイル

つまり、header の場合はこれを使うと

  • -H value
  • --header value
  • header = value

などと書くことが出来るようですね。

2017-04-11 追記

curlrc がずっと読まれちゃってCookieが維持されちゃうときなど、一時的にcurlrc を無効にしたいときは

curl -q  http:/...

-q オプションを付けることで curlrc の読み込みを一時停止してコマンドを実行することが出来る。

2018/02/15 追加

curlrc はどんなときでも読み込まれる。次のように、明示的にconfig を指定していても ~/.curlrc は読み込まれる。

curl --config yet-another-config  

なので、別の設定ファイルを明示するときや素のcurl が欲しい時は -q をかならず使う。

curl -q  --config yet-another-config  

-q を忘れないようにすること。

更に、-q は最初につける

## これはダメ
curl -v -q 
## これはOK
curl -q -v 

-q オプションは最初につけること

2018-02-04 改訂

compressed になった。

2019-07-22 追記

-K -q の仕様について追記

参考資料

man curl