はるなぴログ

WEBサイト作成技術研究

curlをWindows10にインストールしてウェブサイトをスクレイピングしよう!

curlを使うと何がいいのか?

ウェブサイトのHTMLファイルをコマンドひとつで簡単にゲットできるようになります。

これをウェブスクレイピングと呼びます。

CurlをWindows10にインストールしてウェブサイトをスクレイピングしましょう!

Linuxを使用している方にはcurlとかwgetというコマンドはお馴染みだと思いますが、Windowsユーザは知らない方も多いのではないかと思います。

CurlのWindows10へのインストール

f:id:hal7pi:20181021104409j:plain

CurlのWindows10へのインストール方法を説明します。

はるなぴの手元環境がWindows10なのでWindows10で説明しますがWindows8やWindows7でも同様にインストール可能だと思います。

ChocolateyによるCurlのインストール

Chocolateyをインストール済みの方は簡単です。コマンドを叩くだけ。

Chocolatey未インストールの方は以下のサイトを参考にインストールしてみてくださいね。

ameblo.jp

さてWindowsでコマンドを叩くなら…Cmder(コマンダー)がお勧めですよ。

未インストールの方はこちらの記事をご参照ください。

ameblo.jp

さて準備が整ったらChocolateyを使いCmderからインストールコマンドを打ちましょう。ちなみにCmderは右クリックで「管理者で実行」を選択して起動してくださいね。

まずはcurlのバージョンを調べましょう。

choco search curl

これでChocolateyでインストールするcurlのバージョンが分かります。

f:id:hal7pi:20181021104749p:plain

2018年10月現在バージョンは7.61.1でした。Curlのダウンロードサイトで確認すると2018年9月5日に公開された最新バージョンであることが分かります。

なのでこのままChocolateyでインストールコマンドを打ちます。

choco install curl -y

コマンドの最後に-yをつけると途中でy/nを聞かずに一気にインストールしてくれます。簡単簡単!

ちゃんとインストールできたかどうかCurlのバージョン確認をしておきましょう。

curl -V

きちんとインストール終了できているようです。

Curlの使い方

インストールが完了したらさっそくCurlを使ってみましょう。

Curlをコマンドラインから使用する

コマンドラインからコマンドを叩いて使用します。

その前に文字コードをUTF-8に変更しておきましょう。コマンドは

chcp 65001

です。Windowsのcp932に戻す場合は

chcp 932

で戻ります。

はるなぴのはてなブログサイトのトップページでスクレイピングを試してみましょう。

curl https://www.halu7.com/

このコマンドでトップページのHTMLが取得できます。もしうまくいかない時は…

企業の中からアクセスしていませんか?そうした場合はプロキシ設定が必要なこともあります。

Proxyの内側からCurlコマンドを打つオプション

プロキシのサーバ名とポートを調べてください。

IE11やEdgeなどウェブブラウザのオプション設定からプロキシサーバーを確認することができます。

curl -x <[プロトコル://][ユーザ:パスワード@]プロキシホスト[:ポート]> https://ameblo.jp/hal7pi/

でOKです。

例えばこんな感じになります。(ユーザ:パスワードやポート番号は不要な場合もあります)

curl -x https://proxyserver@example.com https://ameblo.jp/hal7pi/

取得したHTMLをファイルに落とす方法

取得したHTMLをファイルに落とすにはリダイレクトを使います。

「リダイレクって何?」という方はこちらの記事をご参照ください。

ameblo.jp

例えばoutput.htmlというファイル名のファイルにHTMLを落としたければ…

curl https://www.halu7.com/ > output.html

というコマンドを打ちます。

これでスクレイピングした内容をファイルに残せるようになりました。更に秀丸マクロと組み合わせればいろいろなことが可能になります!

じゃあどんな風に使うかってことは…

また別の機会に説明しますね。

お楽しみに!

2018/10/27追記:

Windows 10 (April 2018 Update以降) ではOS標準でcurlが搭載されているとのコメントをいただいています。(こちらの記事をご参照ください)

WindowsのコマンドプロンプトからOS標準のsshやtarやcurlコマンドを使う | そど

なのでcurlコマンドを叩くとこのcurlが実行されます。バージョンは2018年10月現在7.55.1です。

Chocolateyを使って入れたcurlを使いたい(curlのバージョン管理をChocolateyを使って行いたい)場合はパスの設定を変更する必要があります。

コントロールパネルを開きます。

「システムとセキュリティ」を選択します。

f:id:hal7pi:20181027164204p:plain

「システム」を選択します。

f:id:hal7pi:20181027164247p:plain

「システムの詳細設定」を選択します。

「Windows」キーと「Pause」キーを同時押しすると一気にこの画面まで来ることができます。

f:id:hal7pi:20181027164257p:plain

「詳細設定」のタブから「環境変数」を選びます。

f:id:hal7pi:20181027164322p:plain

「システム環境変数」から「Path」を選び「編集」ボタンを押します。

f:id:hal7pi:20181027164353p:plain

「C:¥ProgramData¥chocolatey¥bin」を選択し「上へ」ボタンを使って一番上まで上げます。

f:id:hal7pi:20181027164404p:plain

Chocolateyを使って入れたcurlはこのディレクトリの下に入っていますので優先して実行されることになります。

また、

choco upgrade all

コマンドを打てばChocolateyを使ってインストールしたソフトが(可能であれば)全てバージョンアップ可能です。

最新のcurlにバージョンアップするのも簡単ですね!