curl を Python に変換
curl2code は、人気の requests ライブラリを使用して、あらゆる curl コマンドをクリーンな Python コードに即座に変換します。変換は WebAssembly を介してブラウザ内で完全に実行されるため、データがデバイスの外に出ることはありません。フロントエンドで TypeScript を使用している場合は、curl to TypeScript 変換ツールを、サーバーサイドの JavaScript については curl to Node.js をご覧ください。以下に、一般的な HTTP シナリオを網羅した実用的な例を紹介します。
ブラウザから curl をコピーする方法
- 1
デベロッパーツールを開く
F12 キーを押すか、Ctrl+Shift+Iを使用してブラウザのデベロッパーツールを開きます。
- 2
ネットワークタブに移動
ネットワークタブをクリックし、HTTP リクエストをトリガーするアクションを実行します。
- 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を選択することも可能です。