cURLとは何か、ウェブスクレイピングへの活用法について

cURLは、プログラマーがデータ収集やデータ転送に使用する汎用的なコマンドです。しかし、cURLをどのようにウェブスクレイピングに活用できるのでしょうか?この記事を参考に、始めてみてください。
data collection and web scraping with cURL
Gal El Al of Bright Data
Gal El Al | Director of Support
23-Dec-2020

このブログ記事では次を習得できます。

cURLとは?

cURLは、ネットワークプロトコルを介してデータを転送するために使用するコマンドラインツールです。cURL は「Client URL」の略で、「curl」とも表記されます。URL構文を使ってサーバーとのデータ転送を行う一般的なコマンドです。Curl は、無料で使いやすいクライアントサイドのURL転送ライブラリである「libcurl」で稼働します。

curlを使うと有利になる理由は?

このコマンドの汎用性により、curlは次のような様々なユースケースで使用できます。

  • ユーザー認証
  • HTTP投稿
  • SSL接続
  • プロキシ対応
  • FTPアップロード

curlの最も簡単な「使用例」は、サポートされているプロトコルの1つを使用してウェブサイト全体をダウンロードおよびアップロードすることです。

Curlプロトコル

curlには、サポートされるプロトコルの長いリストがありますが、特定のプロトコルが提供されない場合、デフォルトでHTTPを使用します。対応プロトコルの一覧はこちらです。

cURL command - list of supported protocols - dict, file, ftp, ftps, gopher, http, https, imap, imaps, ldap, pop3, stmp, rtsp, scp, sftp, smb, sms, telnet, tftp

curlのインストール

Linuxディストリビューションでは、curlコマンドがデフォルトでインストールされています。

curlがすでにインストールされているかどうかを確認するには?

1.Linuxのコンソールを開きます。

2.「curl」と入力し、「Enter」キーを押します。

3.すでにcurlがインストールされている場合は、次のようなメッセージが表示されます。

terminal window cURL try -help -manual commands

4.curlがまだインストールされていない場合は、次のようなメッセージが表示されます。「command not found(コマンドが見つかりません)」その後、ディストリビューションパッケージに変わり、インストールできるようになります(詳細は後述)。

cURLの使い方

Curlの構文は次のように非常に単純です。

command line Curl options url

例えば、ウェブページwebpage.comをダウンロードしたい場合は、そのまま実行します。

curl command line webpage.com

このコマンドを実行すると、ターミナルのウィンドウにそのページのソースコードが表示されます。プロトコルを指定しない場合、curlではHTTPがデフォルトとされます。以下に、特定のプロトコルを定義する方法の例を示します。

ftp cURL command line syntax

://を付け忘れた場合、curlは使いたいプロトコルを推測します。

コマンドの基本的な使い方について簡単に説明しましたが、curlのドキュメントサイトにオプションの一覧があります。これらのオプションは、URLで実行可能なアクションです。オプションを選択すると、リストアップしたURLでどのようなアクションを起こすかをcurlに指示します。URLは、このアクションを実行する必要がある場所をcURLに伝えます。そして、cURLでは、1つまたは複数のURLをリストアップできます。

複数のURLをダウンロードする場合は、それぞれのURLの前に-0をつけ、その後にスペースを入れてください。一行で行うこともできますし、URLごとに分けて書くこともできます。また、ページをリストアップしてURLの一部をダウンロードすることもできます。例:

curl command line for multiple pages on website

 

ダウンロードの保存

curlを使用すると、2種類の方法でURLのコンテンツをファイルに保存できます。

1.-o メソッド:URLが保存されるファイル名を追加できます。このオプションは次のような構成になっています。

Command line CURL filename

2.-O メソッド:ここでは、このオプションによってURL名でファイルを保存できるので、ファイル名を追加する必要はありません。このオプションを使用するには、URLの前に-Oを付けるだけです。

ダウンロードの再開

ダウンロードが途中で止まってしまう場合があります。この場合、コマンドの先頭に -C オプションを追加して次のように書き換えてください。

curl filename as URL

curlが良く使われる理由

Curlは、複雑な操作のために作られた、まさに「アーミーナイフ」のようなコマンドです。しかし、「wget」や「Kurly」など、もっと単純な作業に適した代替手段もあります。

Curlは、ほぼすべてのプラットフォームで利用可能なため、開発者の間で人気があります。デフォルトでインストールされていることもあります。つまり、実行しているプログラムやジョブが何であれ、curlコマンドは動作するはずです。

また、お使いのOSが10年未満であれば、Curlがインストールされている可能性があります。また、ブラウザでドキュメントを読み、curlのドキュメントを参照することもできます。最近のバージョンのWindowsをお使いの方は、すでにCurlがインストールされていることでしょう。そうでない場合は、Stack Overflowのこの投稿をチェックして、その方法を習得しましょう。

cURLを使ったウェブスクレイピング

プロからのアドバイス:ウェブサイトの規則を尊重しましょう。一般に、パスワードで保護されたコンテンツにアクセスすることは、違法行為とみなされる場合がありますので、絶対におやめください。

ウェブスクレイピングを行う際に、curlを使用して繰り返し処理を自動化することで、面倒な作業を回避することができます。そのためには、PHPを使用する必要があります。以下は GitHubで見つけた例です。

web scraping script in php using curl

curlを使ってウェブページをスクレイピングする場合、次の3つのオプションを使用する必要があります。

  • curl_init($url) -> セッションの初期化
  • curl_exec() -> 実行
  • curl_close() -> 終了
code syntax for scraping a web page using curl

その他、使用すべきオプションは以下の通りです。

  • Curlopt_url -> スクレイピングしたいURLを設定
setting the URL you want to scrape with cURL
  • Curlopt_returntransfer -> スクレイピングされたページを変数として保存するようにcurlに指示します。(これにより、ページから抽出したかった情報を正確に取得できます。)
curl command line for saving scraped page as a variable

手動によるウェブスクレイピング技術にうんざりしていませんか?

Bright Dataは、ボタンをクリックするだけで、ウェブサイト全体や特定のデータポイントにアクセスできる、完全自動のコードレスソリューションを実装しています。

Gal El Al of Bright Data
Gal El Al | Director of Support

Head of Support at Bright Data with a demonstrated history of working in the computer and network security industry. Specializing in billing processes, technical support, quality assurance, account management, as well as helping customers streamline their data collection efforts while simultaneously improving cost efficiency.

あなたは下記にもご興味がおありかもしれません

solve_and_prevent_recaptcha

WebスクレイピングとCAPTCHA

ネットサーフィンをしていると、CAPTCHAと呼ばれるセキュリティ認証に遭遇することがあるでしょう。それは、アクセスしているのがロボットやボットではなく人間であることを確認するチェックで、「橋の写真を選んでください」のような要求がされ、ランダムに表示される画像の中から橋の写真だけをクリックする方式が一般的ではないでしょうか。
What is a proxy server & how does it work?

プロキシサーバーとは、その仕組みは?

このガイドでは、プロキシサーバーの「機能」、「現在利用できるプロキシの種類」、「プロキシとVPNの比較」など、貴社が適切なツールを選択できるよう、プロキシサーバーに関するあらゆる情報を網羅しています。
How to use Selenium for web scraping

Seleniumガイドを使用したウェブスクレイピング

10分以内にターゲットサイトからウェブデータの収集を開始してCSVファイルに結果を保存するために必要となる唯一の手順ガイドです。
What is a reverse proxy

リバースプロキシとは

リバースプロキシは、より効率的な暗号化ツールとして機能し、負荷分散の実現に役立つだけでなく、コンテンツをローカルにキャッシュし、データ消費者に迅速に配信できます。本記事はリバースプロキシーについての究極ガイドです。