curl を Python に変換

curl2code は、人気の requests ライブラリを使用して、あらゆる curl コマンドをクリーンな Python コードに即座に変換します。変換は WebAssembly を介してブラウザ内で完全に実行されるため、データがデバイスの外に出ることはありません。フロントエンドで TypeScript を使用している場合は、curl to TypeScript 変換ツールを、サーバーサイドの JavaScript については curl to Node.js をご覧ください。以下に、一般的な HTTP シナリオを網羅した実用的な例を紹介します。

ブラウザから curl をコピーする方法

  1. 1

    デベロッパーツールを開く

    F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。

  2. 2

    ネットワークタブに移動

    ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。

  3. 3

    cURL としてコピー

    リクエストを右クリック → コピーcURL としてコピー を選択します。その後、上に貼り付けてください。

よくある質問

Python Requestsとは何ですか?

Python Requestsは、GitHubで50,000以上のスターを獲得している、Pythonで最も人気のあるHTTPクライアントライブラリです。HTTPリクエストの作成、セッション、クッキー、認証の処理を行うための、エレガントでPythonicなAPIを提供します。標準でJSONパース、コネクションプーリング、自動コンテンツデコードをサポートしています。pip install requestsでインストールできます。curl2codeのPython変換におけるデフォルトのライブラリです。

Requestsとhttp.client、どちらを使うべきですか?

シンプルなAPI、自動JSONパース、組み込みのセッションサポートがあるため、ほとんどのユースケースでRequestsが推奨されます。http.clientはPython標準ライブラリの一部であり、インストールが不要なため、最小限の環境に適しています。他の言語での同様のシンプルさについては、curl to Ruby コンバーターまたはcurl to Go コンバーターをご覧ください。

Python Requestsで認証を処理するにはどうすればよいですか?

Bearer認証の場合はトークンを含むAuthorizationヘッダーを渡すか、Basic認証の場合はrequests.auth.HTTPBasicAuth(user, pass)を使用します。curl2codeは、-u user:pass-H 'Authorization: Bearer ...'を含む認証パターンを自動的に検出します。

Pythonでマルチパートフォームデータを送信するにはどうすればよいですか?

filesパラメータを使用します:requests.post(url, files={ 'file': open('doc.pdf', 'rb') })。追加のフォームフィールドがある場合は、同時にdataを使用します。curl2codeは-Fフラグを自動的に処理します。

エラーとリトライを処理するにはどうすればよいですか?

4xx/5xxのエラーで例外を発生させるには、response.raise_for_status()を使用します。requests.exceptions.RequestExceptionをキャッチするtry/exceptで囲みます。リトライには、Sessionアダプターと共にurllib3.util.Retryを使用します。

Pythonで非同期HTTPリクエストを行うにはどうすればよいですか?

requestsは同期型です。非同期HTTPには、aiohttpまたはhttpx(requests互換のインターフェースで同期・非同期両方のAPIを提供)を使用してください。高並列シナリオでは、非同期クライアントの方が大幅に優れたスループットを提供します。

タイムアウトとコネクションプーリングを設定するにはどうすればよいですか?

常にタイムアウトを設定してください:requests.get(url, timeout=(3.05, 27))。コネクションプーリングには、TCP接続を再利用するrequests.Session()を使用します。curlの--connect-timeout--max-timeはこれらにマッピングされます。

Python Requestsでプロキシを設定するにはどうすればよいですか?

proxies辞書を渡します:{ 'https': 'http://proxy:8080' }。SOCKSの場合はrequests[socks]をインストールしてください。また、HTTP_PROXY / HTTPS_PROXY環境変数も尊重されます。curl2codeは-x--proxyを自動的に変換します。

PythonでJSONボディを含むPOSTリクエストを送信する方法は?

curl2codeを使用して、curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URLのようなcurlのPOSTコマンドをPythonに変換します。生成されたコードではrequests.post(url, json={'key': 'value'})を使用します。curl2codeはJSONコンテンツを含む-d/--dataフラグを自動的に検出し、Requestsのコードに適切なContent-Typeヘッダーを設定します。

PythonでBearerトークン認証を追加する方法は?

curl -H "Authorization: Bearer YOUR_TOKEN" URLをcurl2codeに渡すと、認証ヘッダーheaders={'Authorization': 'Bearer YOUR_TOKEN'}を含むRequestsのコードが生成されます。curl2codeは-H "Authorization: Bearer ..."--oauth2-bearerフラグの両方からBearerトークンを検出します。Basic authの場合は、-u user:passを使用してください。

PythonでContent-Typeヘッダーを設定する方法は?

curl2codeはcurl -H "Content-Type: application/json" URLを、適切なヘッダーheaders={'Content-Type': 'application/json'}を含むRequestsのコードに変換します。-dデータの場合、curlはデフォルトでapplication/x-www-form-urlencodedを使用し、-Fフォームアップロードの場合はmultipart/form-dataを使用します。curl2codeはそれぞれを正しいRequests APIにマッピングします。

curlコマンドをPythonコードに変換する方法は?

curlコマンドをcurl2codeに貼り付け、Pythonを選択します。このツールは、-X(メソッド)、-H(ヘッダー)、-d(データ)、-u(認証)、-F(フォーム)、クッキーなどのすべてのフラグを解析し、クリーンなPython Requestsのコードを生成します。変換はWebAssemblyを介してブラウザ内でローカルに実行されるため、APIキーやデータはプライベートに保たれます。代替ライブラリとしてhttp.clientを選択することも可能です。

便利なリンク

curl ガイド

curl を他の言語に変換