2016年1月26日火曜日

cURL で web 上のコンテンツを自動ダウンロードする

$ curl http://example.com/index.html -O すればダウンロードできるとかいうけど、
実際はそんなうまくいかない場合もある。
某動画サイトで cURL つかって動画のダウンロードを上記要領でやったらうまくいかなかった。


Chrome の developer tool 使って、Network タブからどんな HTTP リクエストがやり取りされているか見てみた。
やたらリダイレクトされてた。


-L つければ余裕かとおもいきやそうでもなかった。
Header を偽装すれば行ける?いやいけない。


こまったのでいろいろ調べてたら、
Chrome にはユーザー操作で発生したリクエストを cURL コマンドで教えてくれる便利機能があった。

Chrome Feature: Copy as cURL


(LORNAJANE Blog より引用)


右クリックでコピーして terminal にペーストして Enter。
万事解決した。
とりあえず複雑な処理してたら -L つけて、
データ取得のために -O つければ幸せになれます。

HTML ソースから、ファイル名の規則とかディレクトリの構成を推測すれば、
欲しいものだけ連番ダウンロードできて幸せになれたりします。
ということで

curlコマンドで連番サイトの全データを取得する

もリンクしておきます。


めでたしめでたし。

0 件のコメント:

コメントを投稿