「Client for URLs」の略で、コマンドライン ツールとlibcurl と呼ばれるライブラリを含むソフトウェア プロジェクトです。この 2 つは、さまざまなネットワーク プロトコルにわたる URL 構文によるデータ転送を専門としています。libcurl には、SSL サポート、プロキシ トンネリング、ヘッダー構成、Cookie 管理などの機能も備わっています。
curl [options] [URL]
URL
宛先、つまりターゲットとするオンライン サーバーまたはリソースです。一般的な cURL オプションは次のとおりです。
-X
または--request
: 使用する HTTP メソッドを設定します。
-d
または--data
: リクエストの本文にデータを追加します。
-b
または--cookie
: リクエストの Cookie を管理します。
-H
または--header
: リクエストにカスタム ヘッダーを追加します。ヘッダーが複数ある場合は、オプションを何度も繰り返します。デフォルトはGET
。
-v
または--verbose
: デバッグ用の詳細な情報を出力します。
⚠️注 1 : コマンドラインのcurl
オプションは敏感なので注意してください。したがって、 -x
と-X
には異なる意味があります。
⚠️注 2 : PowerShell では、 curl
Invoke-Request
のエイリアスです。Windows で cURL を使用するには、 curl
ではなくcurl.exe
と記述します。
curl "//example.com/"
内部的には、cURL は GET リクエストを作成し、 //example.com/
Web ページに関連付けられた HTML ドキュメントを取得して、ターミナルに出力します。
以下の cURL POST の例では、新しいユーザーを作成するために必要な JSON データを使用して//api.example.com/users
エンドポイントを呼び出します。
curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' "//api.example.com/users"
目的の HTTP メソッドを指定する-X
オプションに注意してください。Content Content-Type
ヘッダーを設定する-H
オプションと、文字列で生の JSON データを指定する-d
オプションの使用にも注意してください。専用のを確認してください。
curl -X PUT -d "name=Amazon%20Scraping&description=Automated%20data%20extraction%20for%20retrieving%20price%20data&status=completed" "//api.example.com/projects/12"
HTTP リクエストは、提供されたデータを使用して ID 12 のプロジェクトを更新します。この例では、リクエスト本文のデータは、上記の cURL POST 呼び出しで使用された JSON 本文とは対照的に、 application/x-www-form-urlencoded
形式です。データ形式のこの柔軟性は、さまざまなユースケースに対する cURL の適応性を示しています。
curl -X PATCH -d "status=failed" "//api.example.com/projects/12"
curl -X DELETE //api.example.com/user/431
-o
または--output
: 出力をではなく指定されたローカル ファイルに書き込みます。-O
または--remote-name
: 出力をリモート ファイルに保存します。-i
または--include
: 出力に応答 HTTP ヘッダーを含めます。-u
または--user
: user:password
形式のユーザー名とパスワードで認証します。-L
または--location
: サーバーが3XX
で応答したときにリダイレクトに従います。-e
または--referer
: 「リファラーページ」情報を HTTP サーバーに送信します。-x
または--proxy
: リクエストを送信するプロキシ サーバーの URL を指定します。詳細については、 に関するチュートリアルを読むか、以下のビデオをご覧ください。--rate
: レート制限措置のトリガーを回避するために cURL が遵守する最大転送頻度を指定します。--data-binary
: 追加の処理を一切行わずに、指定されたとおりにデータをサーバーに送信します。--compressed
: 圧縮された応答を要求し、応答コンテンツを自動的に解凍します。
cURL は Web リクエストの強力なツールですが、デフォルトの設定ではボット対策に対して脆弱です。たとえば、デフォルトのUser-Agent
ヘッダーを考えてみましょう。
curl/XYZ
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
それはまったく違う图文列です!
显然、暴击メカニズムがトリガーされる可能性があります 😅。また、cURL は単なる HTTP クライアントであることを忘れないでください。したがって、レンダリングやデータ达成に JavaScript に依存するページを処理できません。