curlコマンドを通常のJavaメソッド呼び出しとして実行できるJavaライブラリ。HTTPクライアントのコードを書かずに、PostmanやブラウザーのDevToolsからコピーしたcurlをそのまま使えます。
lexiforest/curl_cffi
curlベースのPython HTTPクライアント。ブラウザーのTLS、JA3、HTTP/2フィンガープリントを偽装し、ブロックを回避できます。
- スター
- 6,769
- フォーク
- 570
- 未解決の Issue
- 46
- 最終コミット
- 一昨日
これは何?
curl_cffiは、cffiを使って構築されたcurl-impersonateフォークのPythonバインディングです。requests風のAPIで同期・非同期のHTTPリクエストを実行できます。requestsやhttpxとは異なり、実際のブラウザーのように見える接続を確立し、TLS、JA3、HTTP/2のフィンガープリントを模倣できます。
セッションやCookieを扱える高レベルのrequests風インターフェースに加え、低レベルのcurl APIも提供します。impersonate="chrome"のようなパラメーターでブラウザーを指定するか、ブラウザー以外を対象とする場合は独自のja3文字列やakamai文字列を渡します。HTTP/3、SOCKSおよびHTTPプロキシ、WebSocket接続にも対応しており、URLを偽装付きで取得できるcurl-cffiというCLIも同梱されています。
Linux、macOS、Windows向けのビルド済みwheelが公開されているため、ローカルでのコンパイルは不要です。パッケージをアップグレードせずに、updateコマンドでフィンガープリントのプリセットを更新できます。
主な機能
- 01カスタムフィンガープリントを含む、ブラウザーのTLS/JA3およびHTTP/2フィンガープリントを偽装します。
- 02セッションに対応したrequests風のAPIに加え、同期クライアントとasyncioクライアントを提供します。
- 03HTTP/2およびHTTP/3と、HTTPプロキシおよびSOCKSプロキシに対応しています。
- 04ハンドシェイク時のブラウザー偽装に対応したWebSocketクライアントを備えています。
- 05偽装付きでURLを取得できるcurl-cffi CLIを同梱しています。
ユースケース
- TLSフィンガープリントをもとにrequestsやhttpxをブロックするサイトからページを取得する。
- asyncioによる並行処理やプロキシのローテーションが必要なWebスクレイパーを構築する。
- 特定のブラウザーフィンガープリントに対するサービスの応答をテストする。
- Scrapyやrequestsベースのコードで、ブラウザーに似たTLSの挙動を利用する。
クイックスタート
- 1
PyPIからパッケージをインストールする
pip install curl_cffi --upgrade - 2
Chromeを偽装するリクエストを送る
python -c "import curl_cffi; r = curl_cffi.get('https://tls.browserleaks.com/json', impersonate='chrome'); print(r.json())"
使う前に知っておきたいこと
- http/3フィンガープリントなどの一部の高度な機能には、最新バージョンが必要です。
- 商用サポートと追加のフィンガープリントは、有料プランで提供されています。
トピック
よくある質問
- curl_cffi とは?
- curlベースのPython HTTPクライアント。ブラウザーのTLS、JA3、HTTP/2フィンガープリントを偽装し、ブロックを回避できます。 curl_cffiは、cffiを使って構築されたcurl-impersonateフォークのPythonバインディングです。requests風のAPIで同期・非同期のHTTPリクエストを実行できます。requestsやhttpxとは異なり、実際のブラウザーのように見える接続を確立し、TLS、JA3、HTTP/2のフィンガープリントを模倣できます。
- curl_cffi は無料で使えますか?ライセンスは?
- curl_cffi は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- curl_cffi は今もメンテナンスされていますか?
- 活発にメンテナンス中。curl_cffi の最終コミットは 2026年10月23日 です。
- curl_cffi は何に使えますか?
- TLSフィンガープリントをもとにrequestsやhttpxをブロックするサイトからページを取得する。 asyncioによる並行処理やプロキシのローテーションが必要なWebスクレイパーを構築する。 特定のブラウザーフィンガープリントに対するサービスの応答をテストする。 Scrapyやrequestsベースのコードで、ブラウザーに似たTLSの挙動を利用する。
- curl_cffi のインストール方法は?
- PyPIからパッケージをインストールする: pip install curl_cffi --upgrade Chromeを偽装するリクエストを送る: python -c "import curl_cffi; r = curl_cffi.get('https://tls.browserleaks.com/json', impersonate='chrome'); print(r.json())"
- curl_cffi はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/lexiforest/curl_cffi
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Hurlは、プレーンテキスト形式のファイルに記述したHTTPリクエストを実行・テストするコマンドラインツールです。
Go標準のnet/httpを基盤とする、高速で軽量なWebフレームワーク。
ws://、wss://接続向けの、netcat、curl、socatのように使えるコマンドラインWebSocketクライアント兼サーバー。
HTTP/1、HTTP/2、WebSocketの通信を調査できる、コンソール・コマンドライン・Webインターフェースを備えたTLS対応の対話型HTTPプロキシ。
REST、GraphQL、WebSocket、SSE、Socket.IO、MQTTのリクエストを送信できる、Web・デスクトップ・CLI対応のオープンソースAPI開発エコシステム。