kines9661 commited on
Commit
4ed0c28
·
verified ·
1 Parent(s): 5255cff

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +102 -299
README.md CHANGED
@@ -1,183 +1,42 @@
1
- # Turnstile 求解服務 - 完整方案
 
 
 
 
 
 
 
 
2
 
3
- ## 功能概述
4
 
5
- 支持兩種求解方式:
6
 
7
- ### 1. 本地 Playwright 求解
8
- - 使用 Playwright 自動化瀏覽器
9
- - 無需第三方服務
10
- - 適合低頻率使用
11
 
12
- ### 2. 第三方服務求解
13
- 支持以下服務提供商:
14
- - **2captcha** - 快速便宜
15
- - **Anti-Captcha** - 穩定、可靠
16
- - **CapSolver** - 新興、高效
 
17
 
18
- ## API 端點
19
-
20
- ### 健康檢查
21
- ```bash
22
- GET /health
23
- ```
24
-
25
- ### 本地求解
26
- ```bash
27
- POST /solve
28
- Content-Type: application/json
29
-
30
- {
31
- "url": "https://example.com",
32
- "sitekey": "0x4AAAAAAAxxxxxx",
33
- "timeout": 30000
34
- }
35
- ```
36
-
37
- **響應:**
38
- ```json
39
- {
40
- "token": "0.xxxxx",
41
- "success": true,
42
- "message": "Turnstile 求解成功"
43
- }
44
- ```
45
-
46
- ### 第三方服務求解
47
- ```bash
48
- POST /solve-external
49
- Content-Type: application/json
50
-
51
- {
52
- "sitekey": "0x4AAAAAAAxxxxxx",
53
- "pageurl": "https://example.com",
54
- "provider": "2captcha",
55
- "api_key": "YOUR_API_KEY",
56
- "timeout": 180
57
- }
58
- ```
59
-
60
- **支持的 provider:**
61
- - `2captcha`
62
- - `anti-captcha`
63
- - `capsolver`
64
-
65
- ### 獲取服務提供商列表
66
- ```bash
67
- GET /providers
68
- ```
69
-
70
- ## 部署指南
71
-
72
- ### 本地測試
73
-
74
- 1. 安裝依賴:
75
- ```bash
76
- pip install -r requirements.txt
77
- ```
78
-
79
- 2. 安裝 Playwright 瀏覽器:
80
- ```bash
81
- playwright install chromium
82
- ```
83
-
84
- 3. 運行應用:
85
- ```bash
86
- python app.py
87
- ```
88
-
89
- 4. 訪問 UI:
90
- ```
91
- http://localhost:7860
92
- ```
93
-
94
- ### 部署到 HuggingFace Spaces
95
-
96
- 1. 創建新 Space:
97
- - 訪問 https://huggingface.co/spaces
98
- - 點擊 "Create new Space"
99
- - 選擇 Docker SDK
100
- - 填寫 Space 名稱
101
-
102
- 2. 上傳文件:
103
- ```bash
104
- git clone https://huggingface.co/spaces/YOUR_USERNAME/turnstile-solver
105
- cd turnstile-solver
106
-
107
- # 複製文件
108
- cp /path/to/app.py .
109
- cp /path/to/captcha_service.py .
110
- cp /path/to/requirements.txt .
111
- cp /path/to/Dockerfile .
112
-
113
- # 提交並推送
114
- git add .
115
- git commit -m "Initial commit"
116
- git push
117
- ```
118
-
119
- 3. HuggingFace 會自動構建並部署
120
-
121
- ## 第三方服務配置
122
-
123
- ### 2captcha
124
-
125
- 1. 註冊帳戶:https://2captcha.com
126
- 2. 獲取 API Key
127
- 3. 充值賬戶
128
- 4. 在 UI 中選擇 "2captcha" 並輸入 API Key
129
-
130
- **費用:** 約 $0.5-1 per 1000 captchas
131
-
132
- ### Anti-Captcha
133
-
134
- 1. 註冊帳戶:https://anti-captcha.com
135
- 2. 獲取 API Key
136
- 3. 充值賬戶
137
- 4. 在 UI 中選擇 "anti-captcha" 並輸入 API Key
138
-
139
- **費用:** 約 $0.5-1 per 1000 captchas
140
-
141
- ### CapSolver
142
-
143
- 1. 註冊帳戶:https://www.capsolver.com
144
- 2. 獲取 API Key
145
- 3. 充值賬戶
146
- 4. 在 UI 中選擇 "capsolver" 並輸入 API Key
147
-
148
- **費用:** 約 $0.3-0.8 per 1000 captchas
149
 
150
- ## 使用示例
151
-
152
- ### Python 客戶端
153
 
154
- ```python
155
- import asyncio
156
- import aiohttp
157
-
158
- async def solve_turnstile():
159
- async with aiohttp.ClientSession() as session:
160
- # 本地求解
161
- payload = {
162
- "url": "https://example.com",
163
- "sitekey": "0x4AAAAAAAxxxxxx",
164
- "timeout": 30000
165
- }
166
-
167
- async with session.post(
168
- "http://localhost:7860/solve",
169
- json=payload
170
- ) as resp:
171
- result = await resp.json()
172
- print(f"Token: {result['token']}")
173
-
174
- asyncio.run(solve_turnstile())
175
- ```
176
 
177
- ### cURL 示例
178
 
 
179
  ```bash
180
- # 本地求解
181
  curl -X POST http://localhost:7860/solve \
182
  -H "Content-Type: application/json" \
183
  -d '{
@@ -185,8 +44,10 @@ curl -X POST http://localhost:7860/solve \
185
  "sitekey": "0x4AAAAAAAxxxxxx",
186
  "timeout": 30000
187
  }'
 
188
 
189
- # 第三方服務求解
 
190
  curl -X POST http://localhost:7860/solve-external \
191
  -H "Content-Type: application/json" \
192
  -d '{
@@ -198,158 +59,100 @@ curl -X POST http://localhost:7860/solve-external \
198
  }'
199
  ```
200
 
201
- ## 文件結構
202
-
203
- ```
204
- turnstile-solver/
205
- ├── app.py # FastAPI 應用 + UI
206
- ├── captcha_service.py # 第三方服務集成
207
- ├── requirements.txt # Python 依賴
208
- ├── Dockerfile # Docker 配置
209
- ├── config.py # 配置管理
210
- ├── client.py # Python 客戶端
211
- ├── .env.example # 環境變量模板
212
- ├── .gitignore # Git 忽略文件
213
- └── DEPLOYMENT_GUIDE.md # 部署指南
214
- ```
215
 
216
- ## 環境變量配置
 
 
 
 
 
217
 
218
- 創建 `.env` 文件:
219
-
220
- ```env
221
- # 環境設置
222
- ENVIRONMENT=production
223
- DEBUG=False
224
-
225
- # 服務設置
226
- HOST=0.0.0.0
227
- PORT=7860
228
 
229
- # Playwright 設置
230
- BROWSER_TIMEOUT=30000
231
- HEADLESS=True
 
232
 
233
- # 第三方 API 設置
234
- CAPTCHA_API_PROVIDER=2captcha
235
- CAPTCHA_API_KEY=your_api_key_here
236
 
237
- # 日誌設置
238
- LOG_LEVEL=INFO
239
- LOG_FILE=app.log
240
- ```
 
241
 
242
- ## 性能優化
 
 
 
 
243
 
244
- ### 本地求解
245
- - 適合低頻率使用(< 10 req/min)
246
- - 消耗 CPU 和內存
247
- - 無額外成本
 
248
 
249
- ### 第三方服務
250
- - 適合高頻率使用(> 10 req/min)
251
- - 按次數計費
252
- - 更穩定可靠
253
 
254
- ### 建議配置
 
255
 
256
- | 使用場景 | 推薦案 | 預估成本 |
257
- |---------|--------|--------|
258
- | 低頻率 (< 100/天) | 本地 Playwright | $0 |
259
- | 中頻率 (100-1000/天) | 2captcha | $0.5-5/月 |
260
- | 高頻率 (> 1000/天) | Anti-Captcha | $5-50/月 |
261
- | 超高頻率 (> 10000/天) | CapSolver | $50-200/月 |
262
 
263
- ## 故障排除
 
264
 
265
- ### 本地求解失敗
 
266
 
267
- **問題:** Playwright 超時
268
- ```
269
- 求解失敗: Timeout waiting for selector
270
- ```
271
 
272
- **解決方案:**
273
- 1. 增加 timeout 參數
274
- 2. 檢查網絡連接
275
- 3. 確認 sitekey 正確
276
 
277
- ### 第三方服務失敗
 
 
 
 
 
 
 
278
 
279
- **問題:** API Key 無效
280
- ```
281
- 求解失敗: Invalid API key
282
  ```
283
 
284
- **解決方案:**
285
- 1. 檢查 API Key 是否正確
286
- 2. 確認賬戶已充值
287
- 3. 檢查服務是否支持 Turnstile
 
 
 
 
 
 
 
288
 
289
- **問題:** 超時
290
- ```
291
- 求解失敗: Timeout
292
  ```
293
 
294
- **解決方案:**
295
- 1. 增加 timeout 參數
296
- 2. 檢查服務狀態
297
- 3. 嘗試其他服務提供商
298
-
299
- ## 安全建議
300
-
301
- 1. **不要在代碼中硬編碼 API Key**
302
- - 使用環境變量
303
- - 使用 .env 文件
304
-
305
- 2. **實現速率限制**
306
- - 防止濫用
307
- - 保護服務
308
-
309
- 3. **添加身份驗證**
310
- - 使用 API Key 驗證
311
- - 實現 JWT token
312
-
313
- 4. **監控日誌**
314
- - 追蹤求解成功率
315
- - 檢測異常行為
316
-
317
- ## 常見問題
318
-
319
- **Q: 本地求解和第三方服務有什麼區別?**
320
-
321
- A: 本地求解使用 Playwright 自動化瀏覽器,無需第三方服務。第三方服務使用專門的驗證碼求解 API,更快更穩定。
322
-
323
- **Q: 哪個第三方服務最便宜?**
324
-
325
- A: CapSolver 通常最便宜,約 $0.3-0.8 per 1000 captchas。
326
-
327
- **Q: 可以同時使用多個服務嗎?**
328
-
329
- A: 可以,在 UI 中選擇不同的服務提供商。
330
-
331
- **Q: 如何提高求解成功率?**
332
 
333
- A:
334
- 1. 使用多個服務提供商
335
- 2. 實現重試機制
336
- 3. 增加 timeout 參數
337
 
338
  ## 支持
339
 
340
- - 文檔:查看
341
- - 問題:提交 GitHub Issue
342
- - 討論:加入社區
343
-
344
- ## 許可證
345
-
346
- MIT License
347
 
348
- ## 更新日誌
349
 
350
- ### v1.0.0 (2024-04-04)
351
- - 初始版本
352
- - 支持本地 Playwright 求解
353
- - 支持 2captcha、Anti-Captcha、CapSolver
354
- - 完整的 Web UI
355
- - 完整的 API 文檔
 
1
+ ---
2
+ title: Turnstile Solver
3
+ emoji: 🔐
4
+ colorFrom: purple
5
+ colorTo: blue
6
+ sdk: docker
7
+ app_file: app.py
8
+ pinned: false
9
+ ---
10
 
11
+ # Turnstile Solver - 驗證碼求解服務
12
 
13
+ 快速求解 Cloudflare Turnstile 驗證碼的服務。支持本地 Playwright 和第三服務(2captcha、Anti-Captcha、CapSolver)。
14
 
15
+ ## 功能
 
 
 
16
 
17
+ - 🎨 現代化 Web UI
18
+ - ⚡ 本地 Playwright 求解(免費)
19
+ - 🔄 第三方服務集成(2captcha、Anti-CaptchaCapSolver)
20
+ - 📋 完整 REST API
21
+ - 🔐 自動複製 Token
22
+ - 💾 本地保存設置
23
 
24
+ ## 快速開始
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
25
 
26
+ ### 方式 1: Web UI(推薦)
 
 
27
 
28
+ 1. 打開應用
29
+ 2. 選擇求解方式:
30
+ - **本地 Playwright**:無需配置
31
+ - **第三方服務**:需要 API Key
32
+ 3. 輸入 URL 和 Sitekey
33
+ 4. 點擊「求解 Turnstile」
34
+ 5. 自動複製 Token
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
 
36
+ ### 方式 2: API 調用
37
 
38
+ **本地求解:**
39
  ```bash
 
40
  curl -X POST http://localhost:7860/solve \
41
  -H "Content-Type: application/json" \
42
  -d '{
 
44
  "sitekey": "0x4AAAAAAAxxxxxx",
45
  "timeout": 30000
46
  }'
47
+ ```
48
 
49
+ **第三方服務求解:**
50
+ ```bash
51
  curl -X POST http://localhost:7860/solve-external \
52
  -H "Content-Type: application/json" \
53
  -d '{
 
59
  }'
60
  ```
61
 
62
+ ## 支持的服務
 
 
 
 
 
 
 
 
 
 
 
 
 
63
 
64
+ | 服務 | 費用 | 速度 | 可靠性 |
65
+ |------|------|------|--------|
66
+ | 本地 Playwright | 免費 | ⭐⭐⭐ | ⭐⭐⭐⭐ |
67
+ | 2captcha | $0.5-1/1000 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
68
+ | Anti-Captcha | $0.5-1/1000 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
69
+ | CapSolver | $0.3-0.8/1000 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
70
 
71
+ ## API 端點
 
 
 
 
 
 
 
 
 
72
 
73
+ - `GET /health` - 健康檢查
74
+ - `POST /solve` - 本地求解
75
+ - `POST /solve-external` - 第三方服務求解
76
+ - `GET /providers` - 獲取服務列表
77
 
78
+ ## 配置第三方服務
 
 
79
 
80
+ ### 2captcha
81
+ 1. 訪問 https://2captcha.com
82
+ 2. 註冊並登入
83
+ 3. 進入 Settings → API Key
84
+ 4. 複製 API Key 到應用
85
 
86
+ ### Anti-Captcha
87
+ 1. 訪問 https://anti-captcha.com
88
+ 2. 註冊並登入
89
+ 3. 進入 Account → API Key
90
+ 4. 複製 API Key 到應用
91
 
92
+ ### CapSolver
93
+ 1. 訪問 https://www.capsolver.com
94
+ 2. 註冊並登入
95
+ 3. 進入 Dashboard → API Key
96
+ 4. 複製 API Key 到應用
97
 
98
+ ## 常見問題
 
 
 
99
 
100
+ **Q: 本地求解需要什麼?**
101
+ A: 只需要 Playwright 和 Chromium 瀏覽器,無需第三方服務。
102
 
103
+ **Q: 第三服務需要付費嗎?**
104
+ A: 是的,按求解次數計費。通常 $0.3-1 per 1000 captchas。
 
 
 
 
105
 
106
+ **Q: 哪個方式更快?**
107
+ A: 第三方服務通常更快(3-10 秒),本地求解可能需要 10-30 秒。
108
 
109
+ **Q: 可以免費使用嗎?**
110
+ A: 本地 Playwright 完全免費。第三方服務需要付費。
111
 
112
+ ## 使用示例
 
 
 
113
 
114
+ ### Python
115
+ ```python
116
+ import requests
 
117
 
118
+ response = requests.post(
119
+ "http://localhost:7860/solve",
120
+ json={
121
+ "url": "https://example.com",
122
+ "sitekey": "0x4AAAAAAAxxxxxx",
123
+ "timeout": 30000
124
+ }
125
+ )
126
 
127
+ print(response.json()['token'])
 
 
128
  ```
129
 
130
+ ### JavaScript
131
+ ```javascript
132
+ const response = await fetch('http://localhost:7860/solve', {
133
+ method: 'POST',
134
+ headers: { 'Content-Type': 'application/json' },
135
+ body: JSON.stringify({
136
+ url: 'https://example.com',
137
+ sitekey: '0x4AAAAAAAxxxxxx',
138
+ timeout: 30000
139
+ })
140
+ });
141
 
142
+ const data = await response.json();
143
+ console.log(data.token);
 
144
  ```
145
 
146
+ ## 許可證
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
 
148
+ MIT License
 
 
 
149
 
150
  ## 支持
151
 
152
+ - 遇到問題?查看文
153
+ - 需要幫助?提交 Issue
154
+ - 有建議?提交 Pull Request
 
 
 
 
155
 
156
+ ---
157
 
158
+ **祝您使用愉快!** 🚀