Repolode
lexiforest

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. 1

    PyPIからパッケージをインストールする

    pip install curl_cffi --upgrade
  2. 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 の数値は毎日更新されます。

関連プロジェクト