paint-brush
cURL 入門: 最も人気のある HTTP クライアント@brightdata
新しい歴史

cURL 入門: 最も人気のある HTTP クライアント

Bright Data6m2024/07/29
Read on Terminal Reader

長すぎる; 読むには

CURL はコマンドライン ツールであり、SSL サポート、プロキシ トンネリング、ヘッダー構成、Cookie 管理などの機能を備えた libcurl と呼ばれるライブラリです。cURL は Linux、macOS、Windows にプリインストールされているため、コマンドラインでの Web リクエストに最適なツールです。
featured image - cURL 入門: 最も人気のある HTTP クライアント
Bright Data HackerNoon profile picture
0-item

Web 開発者の皆さん、キーボードをしっかり握ってください。ツールキットに cURL が含まれていない場合、この分野で最も強力なツールの 1 つを見逃している可能性があります。cURL は単なる CLI ベースの HTTP クライアントではなく、コマンドライン HTTP クライアントです。


cURL の真髄を探る旅にご参加ください。cURL の謎を解き明かし、その機能を探り、プロのように使用するための知識を身につけることができます。cURL の真の力を解き放つ準備はできていますか? さあ、始めましょう!

cURL とは何ですか?

cURL は「Client for URLs」の略で、コマンドライン ツールとlibcurl と呼ばれるライブラリを含むソフトウェア プロジェクトです。この 2 つは、さまざまなネットワーク プロトコルにわたる URL 構文によるデータ転送を専門としています。libcurl には、SSL サポート、プロキシ トンネリング、ヘッダー構成、Cookie 管理などの機能も備わっています。


libcurl がサポートするプロトコルの完全なリストを調べるのは、デジタルのアルファベット スープをナビゲートするようなものです。HTTP、HTTPS、FTP、SFTP、IMAP、POP3、SMTP、MQTT など、数十のプロトコルが含まれます。リストが非常に長いため、聞いたことのないプロトコルもあるかもしれません。そうであっても、安心してください。あなただけではありません! 😜


cURL が開発者の間で人気を博したのはなぜでしょうか。それは、そのクロスプラットフォームの能力にあります。PHP、Python、Java など、多くのプログラミング言語で libcurl バインディングが利用できるため、cURL はさまざまな技術スタックにシームレスに統合されます。人気の理由は、その普遍性にあります。cURL は Linux、macOS、Windows にプリインストールされており、箱から出してすぐに、どのマシンのターミナルでも Web リクエストに使用できる頼りになるツールです。


ウェブ コンテンツの取得、API のテスト、ファイルのアップロードなど、cURL はあらゆるウェブ開発者のツールキットに欠かせないツールとして高く評価されています。その比類のない柔軟性と効率性に匹敵するものはありません。🚀

cURL の実践: 構文と例

ツールキットに cURL が組み込まれましたが、これをどのように使用すればよいでしょうか? 簡単です! 次の構文に従って、ターミナルでコマンドを起動します。

 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と記述します。


それでは、 HTTP メソッド別に分類された実際の例で cURL 構文の動作を見てみましょう。

得る

cURL を使用して対象 Web ページのソース HTML を取得する方法は次のとおりです。

 curl "https://example.com/"


内部的には、cURL は GET リクエストを作成し、 https://example.com/ Web ページに関連付けられた HTML ドキュメントを取得して、ターミナルに出力します。


たった 1 つのコマンドで情報を取得できました。すごいと思いませんか? 🔥

役職

以下の cURL POST の例では、新しいユーザーを作成するために必要な JSON データを使用してhttps://api.example.com/usersエンドポイントを呼び出します。

 curl -X POST -H "Content-Type: application/json" -d '{"name": "John", "age": 30}' "https://api.example.com/users"


目的の HTTP メソッドを指定する-Xオプションに注意してください。Content Content-Typeヘッダーを設定する-Hオプションと、文字列で生の JSON データを指定する-dオプションの使用にも注意してください。専用のcURL POST リクエスト ガイドを確認してください。

置く

cURL PUT 呼び出しは次の構文に従います。

 curl -X PUT -d "name=Amazon%20Scraping&description=Automated%20data%20extraction%20for%20retrieving%20price%20data&status=completed" "https://api.example.com/projects/12"


HTTP リクエストは、提供されたデータを使用して ID 12 のプロジェクトを更新します。この例では、リクエスト本文のデータは、上記の cURL POST 呼び出しで使用された JSON 本文とは対照的に、 application/x-www-form-urlencoded形式です。データ形式のこの柔軟性は、さまざまなユースケースに対する cURL の適応性を示しています。

パッチ

cURL で PUT リクエストを実行して、オンライン リソースの単一のフィールドを更新したいですか? 方法は次のとおりです。

 curl -X PATCH -d "status=failed" "https://api.example.com/projects/12"

消去

cURL を使用すると、以下のように DELETE リクエストを発行して既存のエンティティの存在を消去できます。

 curl -X DELETE https://api.example.com/user/431


この API 呼び出しの後、ID 431 のユーザーは存在しなくなります。

高度な cURL オプション

cURL には多数のオプションがあり、それぞれが複雑なユースケースに独自の機能を提供します。その世界を探索すると、特定の高度なオプションが目立ちます。最も便利な高度な cURL オプションのトップ 10 を以下に示します。


  • -oまたは--output : 出力を<stdoud>ではなく指定されたローカル ファイルに書き込みます。
  • -Oまたは--remote-name : 出力をリモート ファイルに保存します。
  • -iまたは--include : 出力に応答 HTTP ヘッダーを含めます。
  • -uまたは--user : user:password形式のユーザー名とパスワードで認証します。
  • -Lまたは--location : サーバーが3XX応答コードで応答したときにリダイレクトに従います。
  • -eまたは--referer : 「リファラーページ」情報を HTTP サーバーに送信します。
  • -xまたは--proxy : リクエストを送信するプロキシ サーバーの URL を指定します。詳細については、 プロキシで cURL を使用する方法に関するチュートリアルを読むか、以下のビデオをご覧ください。
  • --rate : レート制限措置のトリガーを回避するために cURL が遵守する最大転送頻度を指定します。
  • --data-binary : 追加の処理を一切行わずに、指定されたとおりにデータをサーバーに送信します。
  • --compressed : 圧縮された応答を要求し、応答コンテンツを自動的に解凍します。


これらのオプションを習得すると、進化し続ける Web インタラクションの領域で、比類のない巧みさで cURL を活用できるようになります。🌐

cURL を最大限に活用する方法

cURL は Web リクエストの強力なツールですが、デフォルトの設定ではボット対策に対して脆弱です。たとえば、デフォルトのUser-Agentヘッダーを考えてみましょう。

 curl/XYZ


cURL ユーザー エージェント値を変更する方法を参照してください。


次に、これを最新の Chrome のユーザー エージェントと比較します。

 Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36

それはまったく違う文字列です!


そのヘッダーをオーバーライドせずに cURL を使用することは、ターゲット サーバーに「私を見てください。私は自動化された、ブラウザー以外のロボット リクエストです!」と叫んでいるようなものです。

当然、防御メカニズムがトリガーされる可能性があります 😅。また、cURL は単なる HTTP クライアントであることを忘れないでください。したがって、レンダリングやデータ取得に JavaScript に依存するページを処理できません。


👎Web スクレイピングに cURL を使用する場合、これは良くありません !👎


では、cURL の使用をやめるべきでしょうか? いいえ、そうではありません! 適切なツールを装備するだけでよいのです! cURL の潜在能力を最大限に引き出し、その制限に対処するには、次のいずれかと統合します。


  • ウェブプロキシ:リクエストごとに新しい、位置情報付きの信頼できるIPアドレスを取得する。
  • Web ロック解除ツール: ボット検出テクノロジーを回避しながら、公開されている静的ページまたは JavaScript に依存する Web ページにアクセスします。


どのような決断をしても、Bright Data が対応します。 市場最大かつ最も信頼性の高いプロキシ ネットワークの 1 つである Bight Data は、世界中に数百万のプロキシ サーバーを配備しています。さらに、 Web Unlockerソリューションを使用すると、ボット保護のレベルに関係なく、cURL 経由であらゆるパブリック Web サイトにアクセスできます。

結論

HTTP クライアントのスターである cURL は、ターミナルで Web リクエストを行う開発者にとって頼りになるツールです。ここでは、一般的な HTTP メソッドで cURL を使用する方法を習得し、その多様なオプションについて調べました。これは強力なツールですが、現実的に考えてみましょう。ほとんどのサイトは、cURL 経由でアクセスしていることを検出できます。


恐れることはありません。解決策は簡単です。Web プロキシの助けを借りるか、最適な結果を得るためにBright Dataの Web Unlocker ソリューションを採用してください。インターネットを民主化し、強力な cURL を通じてでも、誰もがどこからでもアクセスできるようにするという私たちの使命にご参加ください。


次回まで、自由に Web を探索し続けてください。