2025定にPythonとGoを聞ってCloudflareを盾Qする圭隈

Sora Fujimoto
AI Solutions Architect
05-Nov-2024

ウェブ徭啝やスクレイピングをQう_k宀として、暴はますます牢されたセキュリティ貨によって伏じるn}を朕の輝たりにしてきました。そのn}の匯つが、F壓弊順嶄の2600嵐參貧のウェブサイトで旋喘されているCloudflareのTurnstile CAPTCHAシステムです。この互業なソリュ`ションは、音屎なトラフィックの80イ鬟侫ルタリングする弯埆した嬬薦をFりながら、云麗のユ`ザ`が中宜なパズルなしにウェブサイトをEできるようにすることで、ボット奮にするアプロ`チを壅協xしました。
2025定には、PythonやGoなどのプログラミング冱Zを聞喘してTurnstileのようなシステムを指閲する室gを誼することが、ウェブスクレイピング嬬薦を恷m晒したいと深えている繁にとって音辛之であることがわかりました。この並では、Cloudflare Turnstileとは採か、なぜこれらのタスクにPythonとGoを聞喘するのが挫ましいのか、TurnstileがPythonスクレ`パ`を奮できるのか、そしてCapSolverのようなソリュ`ションを聞喘して森議に指閲する圭隈について挟賀を慌嗤します。
Cloudflare Turnstileとは採か
Cloudflare Turnstileは、繁gのユ`ザ`と徭啝されたボットを曝eするためにOされた恷仟のCAPTCHAシステムです。ユ`ザ`が}jなパズルを盾く駅勣がある愔瓦CAPTCHAとはなり、Turnstileは麼にバックグラウンドで嘛し、佩啖嵶とリスクuを聞喘してユ`ザ`の佚m來を登僅します。つまり、ユ`ザ`は、謹くの栽、イライラのするn}を頼阻することなく、ウェブサイトにアクセスすることができ、それによってユ`ザ`エクスペリエンスが鯢呂靴泙后
Turnstileは、JavaScriptベ`スの室gを聞喘して、マウスの咾やインタラクションパタ`ンなどのさまざまなシグナルをuし、L宀が繁gかボットかを登爐靴泙后この室gは、ユ`ザ`エンゲ`ジメントを鯢呂気擦覆ら、互いレベルのセキュリティをS隔したいと深えているウェブサイトのgで識堀に噸式しています。

なぜPythonとGoを聞うのか
PythonとGoは、Turnstileによって戻幣されるn}を針捲するための薦な冱Zであり、ウェブ徭啝に蒙にmしています。ここでは、このタスクにmしている尖喇をしくていきます。
參和は、さらなる冥箔のためのリソ`スへのハイパ`リンクを根むバ`ジョンです。
-
Pythonの互い辛i來と悲來
Pythonのシンプルさと辛i來は、ウェブ徭啝とスクレイピングで恷もレく聞喘されている冱Zの匯つとなっています。Selenium、Requests、BeautifulSoupなどのツ`ルは、ウェブインタラクションの砿尖、クッキ`のI尖、HTTPリクエストのg佩のための薦な返粁を戻工します。これらのツ`ルは、Pythonのm魹圓判Mみ栽わされることで、蒙にCAPTCHAI尖において、裏{屁や協豚議な{屁を駅勣とするタスクに恷mなxk岔となります。 -
Goの堀業とK佩來
Goのコンパイルされた來|は、Pythonなどの盾侏冱Zよりも紳糞弔嘛することを吭龍し、レ`ト崙泙気譴CAPTCHAを指閲するなどの互來嬬なタスクにmしています。GoのK佩來モデルは、goroutines を宥じて、匯業に}気離螢エストをI尖することができ、徭啝ワ`クフロ`のI尖rgを畠w議にpします。これは、堀業とK双I尖が音辛之なrにGoが恷mなxk岔となる尖喇です。 -
Mみ栽わせアプロ`チの佚m來
PythonとGoをMみ栽わせることで、Pythonをウェブナビゲ`ションや}jなインタラクションに聞喘し、Goの堀業を聞喘してl訓なHTTPリクエストをI尖することができます。このハイブリッドアプロ`チは、パフォ`マンスとスケ`ラビリティをS隔します。これは、Cloudflare Turnstileのように、佩咼僖食`ンをボット奮に聞喘している辛嬬來のある互業なセキュリティ貨にIする栽に蒙に嶷勣です。 -
薦なコミュニティとサポ`ト
どちらの冱Zも、レなライブラリ、フォ`ラム、ドキュメントを戻工する、寄きくアクティブなコミュニティに屶えられています。このエコシステムは、_k宀がCAPTCHAを指閲し、}jな徭啝タスクをI尖するプロセスを栽尖晒するソリュ`ション、ツ`ル、ライブラリをgに冥せることを吭龍します。撹母したエコシステムを隔つPythonと、揖rタスクにおける紳偏圓魍屬Goは、指畽Δ庇m魹圓鰔箔するユ`スケ`スにおいて、札いにa頼し栽います。
Python と Go を匯wに聞喘することで、_k宀はCloudflare Turnstileやその麿のCAPTCHAシステムによって戻幣される}jなn}を、悲來、堀業、紳偏圓鬟丱薀鵐垢気擦織▲廛踪`チで盾Qすることができます。
Cloudflare TurnstileはPythonスクレ`パ`を奮できるか
Turnstileは麼にプログラミング冱Zではなく、佩咾暴骨cをてていますが、Pythonベ`スのスクレ`パ`が蒙協のインジケ`タ`をQ賀することでフラグ原けされる辛嬬來があります。
- 音徭隼なユ`ザ`佩: 儻堀かつ屎_な佩咾蓮▲椒奪箸里茲Δ偏咾鯤召靴討い訖苗榻圓あります。
- IPレピュテ`ション: 屡岑のデ`タセンタ`またはプロキシIPからのリクエストは、Turnstileの娼砲鰔き軟こす辛嬬來があります。
- ユ`ザ`エ`ジェント猟忖双: ライブラリ╂RequestsにvB原けられているデフォルトのユ`ザ`エ`ジェント猟忖双は、トラフィックを夘わしいものとしてマ`クする辛嬬來があります。
奮を指閲するには、繁gのインタラクションパタ`ンを庁し、廖姙または互瞳|のプロキシを聞喘します。
Cloudflare Turnstileを指閲する圭隈
Turnstileを指閲することは是yですが、m俳なツ`ルを聞喘すれば、gF辛嬬です。參和では、PythonとGoベ`スの圭隈を秘し、CapSolverのAPIをy栽して、Turnstile CAPTCHAを紳糞弔忙惘椶靴泙后
ボ`ナスコ`ド
トップCAPTCHAソリュ`ションのボ`ナスコ`ド を箔できます。CapSolver: WEBS。これを哈きQえると、チャ`ジごとに5イ離椥`ナスが弖紗され、o崙泙棒喘できます。
PythonでのCapSolverを聞喘したgb
肝のコ`ドは、PythonとCapSolverのAPIを聞喘してTurnstileを指閲する圭隈を幣しています。
python
import time
import requests
import tls_client
CAPSOLVER_API_KEY = "YOUR_CAPSOLVER_API_KEY"
PAGE_URL = "https://dash.cloudflare.com/login"
SITE_KEY = "0x4AAAAAAAJel0iaAR3mgkjp"
PROXY = "YOUR_PROXY"
# CapSolverを聞ってTurnstileを指閲するためのタスクを恬撹します
def call_capsolver():
data = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": PAGE_URL,
"websiteKey": SITE_KEY,
"metadata": {"action": "login"}
}
}
uri = 'https://api.capsolver.com/createTask'
res = requests.post(uri, json=data)
task_id = res.json().get('taskId')
if not task_id:
print("タスクの恬撹に払,靴泙靴:", res.text)
return None
# タスクの頼阻をポ`リングします
while True:
time.sleep(1)
data = {
"clientKey": CAPSOLVER_API_KEY,
"taskId": task_id
}
response = requests.post('https://api.capsolver.com/getTaskResult', json=data)
resp = response.json()
if resp.get('status') == "ready":
print("タスクは撹孔しました:", resp)
return resp.get('solution')
if resp.get('status') == "failed" or resp.get("errorId"):
print("タスクは払,靴泙靴:", response.text)
return None
def login(token, userAgent):
headers = {
'Cookie': f'cf_clearance={token}',
'Host': 'dash.cloudflare.com',
'User-Agent': userAgent
}
session = tls_client.Session(client_identifier="chrome_120", random_tls_extension_order=True)
response = session.post(
url='https://dash.cloudflare.com/api/v4/login',
headers=headers,
data={"cf_challenge_response": token, "email": "your_email", "password": "your_password"},
)
print("ログインレスポンス:", response.status_code)
if response.status_code != 403:
print('ログイン撹孔:', response.text)
if __name__ == "__main__":
solution = call_capsolver()
if solution:
login(solution.get("token"), "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36")
GoでのCapSolverを聞喘したgb
Goで揖じタスクをg佩する圭隈は肝のとおりです。
go
package main
import (
"fmt"
"github.com/imroc/req/v3"
"github.com/tidwall/gjson"
"log"
"time"
)
func createTask(apiKey, pageURL, siteKey string) string {
client := req.C()
postData := map[string]interface{}{
"clientKey": apiKey,
"task": map[string]interface{}{
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": pageURL,
"websiteKey": siteKey,
"metadata": map[string]string{"action": "login"},
},
}
resp, err := client.R().SetBodyJsonMarshal(postData).Post("https://api.capsolver.com/createTask")
if err != nil {
log.Fatal(err)
}
return gjson.Get(resp.String(), "taskId").String()
}
func getTaskResult(apiKey, taskId string) map[string]gjson.Result {
client := req.C()
for {
postData := map[string]interface{}{
"clientKey": apiKey,
"taskId": taskId,
}
resp, err := client.R().SetBodyJsonMarshal(postData).Post("https://api.capsolver.com/getTaskResult")
if err != nil {
log.Fatal(err)
}
if gjson.Get(resp.String(), "status").String() == "ready" {
return gjson.Get(resp.String(), "solution").Map()
}
time.Sleep(3 * time.Second)
}
}
func main() {
apiKey := "YOUR_CAPSOLVER_API_KEY"
pageURL := "https://dash.cloudflare.com/login"
siteKey := "0x4AAAAAAAJel0iaAR3mgkjp"
taskId := createTask(apiKey, pageURL, siteKey)
solution := getTaskResult(apiKey, taskId)
if solution != nil {
fmt.Println("ト`クンを函誼しました:", solution["token"].String())
}
}
これらのコ`ドサンプルは、CAPTCHAソリュ`ションの函誼を徭啝し、屎械なログインリクエストを僕佚することで、CloudflareのTurnstile CAPTCHAを指閲するためにCapSolverをy栽する圭隈を幣しています。
Y
CloudflareのTurnstileは、ウェブ徭啝にとって哈きAきn}となっています。PythonやGoなどの薦な冱Zと、CapSolverなどのサ`ビスを聞喘することで、Turnstileのn}を盾Qしながら、紳糞弔念家なアクセスをS隔するための栽尖晒された圭隈を戻工しています。
コンプライアンス窒並 このブログで戻工される秤鵑蓮秤麑畊のみを朕議としています。CapSolverは、すべてのm喘される隈舵およびヨ討臨駟悗謀めています。CapSolverネットワ`クの音隈、p遁、または喘の朕議での聞喘は鯉に鋤峭され、{砲気譴泙后K修燭舛離ャプチャ盾Qソリュ`ションは、巷慌デ`タのクロ`リング嶄にキャプチャの}を盾QするHに100%のコンプライアンスを_隠しながら、ユ`ザ`エクスペリエンスを鯢呂気擦泙后K修燭舛蓮▲稀`ビスの販ある聞喘をX遒靴泙后Tについては、サ`ビス旋喘シsおよびプライバシ`ポリシ`をごEください。
もっとる

Cloudflareチャレンジの盾Q圭隈
CapSolverでCloudflareのn}をgに針捲しましょう。このガイドでは、Cloudflareのセキュリティを盾Qするための駅並をW_し、な返とヒントを耶えて、撹孔したナビゲ`ションを隠^します。

Sora Fujimoto
23-Sep-2025

Webスクレイピングと徭啝のためのCloudflare JSチャレンジの盾Q圭隈
CloudflareのJavaScriptチャレンジを盾Qし、シ`ムレスなウェブスクレイピングと徭啝をgFする圭隈をWびましょう。ヘッドレスブラウザ、プロキシロ`テ`ション、そしてCapSolverの枠M議なCAPTCHA盾QC嬬の試喘など、森議な藺圓魄kしてください。

Sora Fujimoto
05-Mar-2025

Cloudflare TLSフィンガ`プリンティング左賭と盾Q貨
CloudflareのTLSフィンガ`プリンティングによるセキュリティへの試喘、ボットの奮とブロック圭隈、ならびにWebスクレイピングや徭咼屮薀Ε献鵐哀織好における盾Q貨をWびましょう。

Sora Fujimoto
28-Feb-2025

Cloudflare隠oウェブサイトからのデ`タ渇竃圭隈
このガイドでは、Cloudflareで隠oされたウェブサイトからデ`タを渇竃するための尖議で森議な返隈を冥ります。

Sora Fujimoto
20-Feb-2025

2025定にPythonとGoを聞ってCloudflareを盾Qする圭隈
Cloudflare Turnstile についての挟賀を慌嗤し、Python と Go を聞喘してこれらのタスクをg佩します。Turnstile が Python スクラッパ`を奮できるかどうか、そして CapSolver などのソリュ`ションを聞喘してそれを森議にバイパスする圭隈についてh苧します。

Sora Fujimoto
05-Nov-2024

Selenium で Cloudflare Turnstile キャプチャを盾Qする圭隈
云ブログでは、Selenium を聞喘して Cloudflare Turnstile Captcha を針捲するための森議な返隈をいくつかB初します。

Sora Fujimoto
11-Oct-2024