Cara Menyelesaikan Captchas Ketika Web Scraping dengan Scrapling dan CapSolver

Adélia Cruz
Neural Network Developer
05-Dec-2025

Poin Utama
- Scrapling adalah perpustakaan web scraping Python yang kuat dengan fitur anti-bot terintegrasi dan pelacakan elemen adaptif
- CapSolver menyediakan penyelesaian captcha otomatis untuk ReCaptcha v2, v3, dan Cloudflare Turnstile dengan waktu penyelesaian cepat (1-20 detik)
- Menggabungkan Scrapling dengan CapSolver menciptakan solusi scraping yang kuat yang menangani sebagian besar situs web yang dilindungi captcha
- StealthyFetcher menambahkan anti-deteksi tingkat browser ketika permintaan HTTP dasar tidak cukup
- Ketiga jenis captcha ini menggunakan alur kerja CapSolver yang sama: membuat tugas → memantau hasil → menyisipkan token
- Kode produksi harus mencakup penanganan kesalahan, pembatasan laju, dan menghormati ketentuan layanan situs web
Pengantar
Web scraping telah menjadi alat yang penting untuk pengumpulan data, penelitian pasar, dan analisis kompetitif. Namun, seiring dengan perkembangan teknik scraping, pertahanan yang digunakan situs web untuk melindungi data mereka juga semakin berkembang. Salah satu rintangan paling umum yang dihadapi scraper adalah captcha — tantangan-tantangan yang dirancang untuk membedakan manusia dari bot.
Jika Anda pernah mencoba mengambil data dari situs web dan dihadapkan dengan pesan "Harap verifikasi Anda manusia", Anda tahu betapa frustrasinya situasi itu. Berita baiknya? Ada kombinasi alat yang kuat yang bisa membantu: Scrapling untuk web scraping yang cerdas dan CapSolver untuk penyelesaian captcha otomatis.
Dalam panduan ini, kami akan membimbing Anda melalui semua yang perlu Anda ketahui untuk mengintegrasikan alat-alat ini dan secara sukses mengambil data dari situs web yang dilindungi captcha. Baik Anda menghadapi ReCaptcha v2 Google, ReCaptcha v3 yang tidak terlihat, atau Cloudflare Turnstile, kami akan membantu Anda.
Apa itu Scrapling?
Scrapling adalah perpustakaan web scraping modern Python yang menggambarkan dirinya sebagai "perpustakaan scraping adaptif pertama yang belajar dari perubahan situs web dan berkembang bersamanya." Dirancang untuk membuat ekstraksi data mudah sambil menyediakan kemampuan anti-bot yang kuat.
Fitur Utama
- Pelacakan Elemen Adaptif: Scrapling dapat menemukan konten bahkan setelah perubahan desain situs web menggunakan algoritma kesamaan cerdas
- Metode Pengambilan Banyak: Permintaan HTTP dengan imitasi fingerprint TLS, otomatisasi browser, dan mode stealth
- Bypass Anti-Bot: Dukungan terintegrasi untuk melewati Cloudflare dan sistem anti-bot lainnya menggunakan Firefox yang dimodifikasi dan spoofing fingerprint
- Kinerja Tinggi: Benchmarks ekstraksi teks menunjukkan ~2ms untuk 5000 elemen bersarang, jauh lebih cepat daripada banyak alternatif
- Pemilihan Fleksibel: Pemilih CSS, XPath, operasi find seperti BeautifulSoup, dan pencarian berbasis teks
- Dukungan Async: Dukungan penuh async/await untuk operasi scraping bersamaan
Instalasi
Untuk kemampuan parsing dasar:
bash
pip install scrapling
Untuk fitur penuh termasuk otomatisasi browser:
bash
pip install "scrapling[fetchers]"
scrapling install
Untuk semua fitur termasuk fitur AI:
bash
pip install "scrapling[all]"
scrapling install
Penggunaan Dasar
Scrapling menggunakan metode kelas untuk permintaan HTTP:
python
from scrapling import Fetcher
# Permintaan GET
response = Fetcher.get("https://example.com")
# Permintaan POST dengan data
response = Fetcher.post("https://example.com/api", data={"key": "value"})
# Akses respons
print(response.status) # Kode status HTTP
print(response.body) # Byte mentah
print(response.body.decode()) # Teks yang didekripsi
Apa itu CapSolver?
CapSolver adalah layanan penyelesaian captcha yang menggunakan AI canggih untuk menyelesaikan berbagai jenis captcha secara otomatis. Menyediakan API sederhana yang terintegrasi dengan sempurna dengan setiap bahasa pemrograman atau kerangka kerja scraping.
Tingkatkan anggaran otomatisasi Anda secara instan!
Gunakan kode bonus SCRAPLING saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan bonus 6% tambahan pada setiap pengisian ulang — khusus untuk pengguna integrasi Scrapling.
Klaim sekarang di Dashboard CapSolver Anda
Jenis Captcha yang Didukung
- ReCaptcha v2 (checkbox dan tidak terlihat)
- ReCaptcha v3 (berbasis skor)
- ReCaptcha Enterprise (v2 dan v3)
- Cloudflare Turnstile
- AWS WAF Captcha
- Dan banyak lainnya...
Mendapatkan Kunci API Anda
- Daftar di CapSolver
- Navigasi ke dashboard Anda
- Salin kunci API dari pengaturan akun
- Tambahkan dana ke akun Anda (harga per penyelesaian)
Endpoint API
CapSolver menggunakan dua endpoint utama:
- Buat Tugas:
POST https://api.capsolver.com/createTask - Dapatkan Hasil:
POST https://api.capsolver.com/getTaskResult
Menyiapkan Fungsi Bantuan CapSolver
Sebelum masuk ke jenis captcha tertentu, mari kita buat fungsi bantuan yang dapat digunakan kembali yang menangani alur kerja API CapSolver:
python
import requests
import time
CAPSOLVER_API_KEY = "YOUR_API_KEY"
def solve_captcha(task_type, website_url, website_key, **kwargs):
"""
Solver captcha umum menggunakan API CapSolver.
Args:
task_type: Jenis tugas captcha (misalnya, "ReCaptchaV2TaskProxyLess")
website_url: URL halaman dengan captcha
website_key: Kunci situs untuk captcha
**kwargs: Parameter tambahan yang spesifik untuk jenis captcha
Returns:
dict: Solusi yang mencakup token dan data lainnya
"""
payload = {
"clientKey": CAPSOLVER_API_KEY,
"task": {
"type": task_type,
"websiteURL": website_url,
"websiteKey": website_key,
**kwargs
}
}
# Buat tugas
response = requests.post(
"https://api.capsolver.com/createTask",
json=payload
)
result = response.json()
if result.get("errorId") != 0:
raise Exception(f"Gagal membuat tugas: {result.get('errorDescription')}")
task_id = result.get("taskId")
print(f"Tugas dibuat: {task_id}")
# Pantau hasil
max_attempts = 60 # Maksimum 2 menit pemantauan
for attempt in range(max_attempts):
time.sleep(2)
response = requests.post(
"https://api.capsolver.com/getTaskResult",
json={
"clientKey": CAPSOLVER_API_KEY,
"taskId": task_id
}
)
result = response.json()
if result.get("status") == "ready":
print(f"Captcha selesai dalam {(attempt + 1) * 2} detik")
return result.get("solution")
if result.get("errorId") != 0:
raise Exception(f"Kesalahan: {result.get('errorDescription')}")
print(f"Menunggu... (percobaan {attempt + 1})")
raise Exception("Waktu habis: Penyelesaian captcha terlalu lama")
Fungsi ini menangani seluruh alur kerja: membuat tugas, memantau hasil, dan mengembalikan solusi. Kami akan menggunakan fungsi ini sepanjang panduan ini.
Menyelesaikan ReCaptcha v2 dengan Scrapling + CapSolver
ReCaptcha v2 adalah captcha checkbox "Saya bukan robot" klasik. Ketika diaktifkan, mungkin meminta pengguna untuk mengidentifikasi objek dalam gambar (lampu lalu lintas, trotoar, dll.). Untuk scraper, kita perlu menyelesaikan ini secara programatis.
Cara Kerja ReCaptcha v2
- Situs web memuat skrip ReCaptcha dengan kunci situs unik
- Ketika dikirim, skrip menghasilkan token g-recaptcha-response
- Situs web mengirimkan token ini ke Google untuk verifikasi
- Google memverifikasi apakah captcha diselesaikan dengan benar
Menemukan Kunci Situs
Kunci situs biasanya ditemukan dalam HTML halaman:
html
<div class="g-recaptcha" data-sitekey="6LcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD"></div>
Atau dalam tag skrip:
html
<script src="https://www.google.com/recaptcha/api.js?render=6LcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD"></script>
Implementasi
python
from scrapling import Fetcher
def scrape_with_recaptcha_v2(target_url, site_key, form_url=None):
"""
Mengambil halaman yang dilindungi ReCaptcha v2.
Args:
target_url: URL halaman dengan captcha
site_key: Kunci ReCaptcha
form_url: URL untuk mengirimkan formulir (default ke target_url)
Returns:
Respons dari halaman yang dilindungi
"""
# Selesaikan captcha menggunakan CapSolver
print("Menyelesaikan ReCaptcha v2...")
solution = solve_captcha(
task_type="ReCaptchaV2TaskProxyLess",
website_url=target_url,
website_key=site_key
)
captcha_token = solution["gRecaptchaResponse"]
print(f"Dapatkan token: {captcha_token[:50]}...")
# Kirim formulir dengan token captcha menggunakan Scrapling
# Catatan: Gunakan Fetcher.post() sebagai metode kelas (bukan metode instans)
submit_url = form_url or target_url
response = Fetcher.post(
submit_url,
data={
"g-recaptcha-response": captcha_token,
# Tambahkan bidang formulir lainnya yang diperlukan situs
}
)
return response
# Contoh penggunaan
if __name__ == "__main__":
url = "https://example.com/protected-page"
site_key = "6LcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD"
result = scrape_with_recaptcha_v2(url, site_key)
print(f"Status: {result.status}")
print(f"Panjang konten: {len(result.body)}") # Gunakan .body untuk byte mentah
ReCaptcha v2 Tidak Terlihat
Untuk ReCaptcha v2 yang tidak terlihat (tanpa checkbox, diaktifkan saat mengirim formulir), tambahkan parameter isInvisible:
python
solution = solve_captcha(
task_type="ReCaptchaV2TaskProxyLess",
website_url=target_url,
website_key=site_key,
isInvisible=True
)
Versi Enterprise
Untuk versi ReCaptcha v2 Enterprise, gunakan jenis tugas yang berbeda:
python
solution = solve_captcha(
task_type="ReCaptchaV2EnterpriseTaskProxyLess",
website_url=target_url,
website_key=site_key,
enterprisePayload={
"s": "nilai_s_payload jika diperlukan"
}
)
Menyelesaikan ReCaptcha v3 dengan Scrapling + CapSolver
ReCaptcha v3 berbeda dari v2 — berjalan secara tidak terlihat di latar belakang dan memberikan skor (0.0 hingga 1.0) berdasarkan perilaku pengguna. Skor yang lebih dekat ke 1.0 menunjukkan aktivitas manusia yang mungkin.
Perbedaan Utama dari v2
| Aspek | ReCaptcha v2 | ReCaptcha v3 |
|---|---|---|
| Interaksi Pengguna | Checkbox/tantangan gambar | Tidak ada (tidak terlihat) |
| Output | Lulus/gagal | Skor (0.0-1.0) |
| Parameter Aksi | Tidak diperlukan | Diperlukan |
| Kapan digunakan | Formulir, login | Semua muatan halaman |
Menemukan Parameter Aksi
Aksi ditentukan dalam JavaScript situs web:
javascript
grecaptcha.execute('6LcxxxxxxxxxxxxxxxxABCD', {action: 'submit'})
Aksi umum termasuk: submit, login, register, homepage, contact.
Implementasi
python
from scrapling import Fetcher
def scrape_with_recaptcha_v3(target_url, site_key, page_action="submit", min_score=0.7):
"""
Mengambil halaman yang dilindungi ReCaptcha v3.
Args:
target_url: URL halaman dengan captcha
site_key: Kunci ReCaptcha
page_action: Parameter aksi (ditemukan dalam grecaptcha.execute)
min_score: Skor minimum yang diminta (0.1-0.9)
Returns:
Respons dari halaman yang dilindungi
"""
print(f"Menyelesaikan ReCaptcha v3 (aksi: {page_action})...")
solution = solve_captcha(
task_type="ReCaptchaV3TaskProxyLess",
website_url=target_url,
website_key=site_key,
pageAction=page_action
)
captcha_token = solution["gRecaptchaResponse"]
print(f"Dapatkan token dengan skor: {solution.get('score', 'Tidak tersedia')}")
# Kirim permintaan dengan token menggunakan metode kelas Scrapling
response = Fetcher.post(
target_url,
data={
"g-recaptcha-response": captcha_token,
},
headers={
"User-Agent": solution.get("userAgent", "Mozilla/5.0")
}
)
return response
# Contoh penggunaan
if __name__ == "__main__":
url = "https://example.com/api/data"
site_key = "6LcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD"
result = scrape_with_recaptcha_v3(url, site_key, page_action="getData")
print(f"Respons: {result.body.decode()[:200]}") # Gunakan .body untuk konten
ReCaptcha v3 Enterprise
python
solution = solve_captcha(
task_type="ReCaptchaV3EnterpriseTaskProxyLess",
website_url=target_url,
website_key=site_key,
pageAction=page_action,
enterprisePayload={
"s": "parameter s opsional"
}
)
Menyelesaikan Cloudflare Turnstile dengan Scrapling + CapSolver
Cloudflare Turnstile adalah alternatif captcha yang lebih baru yang dirancang sebagai pengganti captcha tradisional yang ramah pengguna dan menjaga privasi. Semakin umum digunakan di situs web yang menggunakan Cloudflare.
Memahami Turnstile
Turnstile memiliki tiga mode:
- Dikelola: Menampilkan widget hanya ketika diperlukan
- Non-Interaktif: Berjalan tanpa interaksi pengguna
- Tidak Terlihat: Sama sekali tidak terlihat bagi pengguna
Berita baiknya? CapSolver menangani ketiga mode ini secara otomatis.
Menemukan Kunci Situs
Cari Turnstile dalam HTML halaman:
html
<div class="cf-turnstile" data-sitekey="0x4xxxxxxxxxxxxxxxxxxxxxxxxxx"></div>
Atau dalam JavaScript:
javascript
turnstile.render('#container', {
sitekey: '0x4xxxxxxxxxxxxxxxxxxxxxxxxxx',
callback: function(token) { ... }
});
Implementasi
python
from scrapling import Fetcher
def scrape_with_turnstile(target_url, site_key, action=None, cdata=None):
"""
Mengambil halaman yang dilindungi Cloudflare Turnstile.
Args:
target_url: URL halaman dengan captcha
site_key: Kunci Turnstile (dimulai dengan 0x4...)
action: Parameter aksi opsional
cdata: Parameter cdata opsional
Returns:
Respons dari halaman yang dilindungi
"""
print("Menyelesaikan Cloudflare Turnstile...")
# Bangun metadata jika tersedia
metadata = {}
if action:
metadata["action"] = action
if cdata:
metadata["cdata"] = cdata
task_params = {
"task_type": "AntiTurnstileTaskProxyLess",
"website_url": target_url,
"website_key": site_key,
}
if metadata:
task_params["metadata"] = metadata
solution = solve_captcha(**task_params)
turnstile_token = solution["token"]
user_agent = solution.get("userAgent", "")
print(f"Dapatkan token Turnstile: {turnstile_token[:50]}...")
# Kirim dengan token menggunakan metode kelas Scrapling
headers = {}
if user_agent:
headers["User-Agent"] = user_agent
response = Fetcher.post(
target_url,
data={
"cf-turnstile-response": turnstile_token,
},
headers=headers
)
return response
# Contoh penggunaan
if __name__ == "__main__":
url = "https://example.com/terlindungi"
site_key = "0x4AAAAAAAxxxxxxxxxxxxxx"
result = scrape_with_turnstile(url, site_key)
print(f"Berhasil! Mendapatkan {len(result.body)} byte") # Gunakan .body untuk konten
### Turnstile dengan Action dan CData
Beberapa implementasi memerlukan parameter tambahan:
```python
solution = solve_captcha(
task_type="AntiTurnstileTaskProxyLess",
website_url=target_url,
website_key=site_key,
metadata={
"action": "login",
"cdata": "session_id_atau_data_kustom"
}
)
Menggunakan StealthyFetcher untuk Perlindungan Anti-Bot yang Lebih Baik
Terkadang permintaan HTTP dasar tidak cukup. Situs web mungkin menggunakan deteksi bot yang canggih yang memeriksa:
- Fingerprint browser
- Eksekusi JavaScript
- Gerakan mouse dan waktu
- Fingerprint TLS
- Header permintaan
Scrapling's StealthyFetcher memberikan perlindungan anti-deteksi tingkat browser dengan menggunakan mesin browser nyata dengan modifikasi stealth.
Apa itu StealthyFetcher?
StealthyFetcher menggunakan browser Firefox yang dimodifikasi dengan:
- Fingerprint browser yang nyata
- Kemampuan eksekusi JavaScript
- Penanganan otomatis tantangan Cloudflare
- Spoofing fingerprint TLS
- Manajemen cookie dan sesi
Kapan Menggunakan StealthyFetcher
| Scenario | Gunakan Fetcher | Gunakan StealthyFetcher |
|---|---|---|
| Form sederhana dengan captcha | Ya | Tidak |
| Halaman JavaScript berat | Tidak | Ya |
| Lapisan anti-bot banyak | Tidak | Ya |
| Kecepatan kritis | Ya | Tidak |
| Mode Under Attack Cloudflare | Tidak | Ya |
Menggabungkan StealthyFetcher dengan CapSolver
Berikut cara menggunakan keduanya bersama-sama untuk efektivitas maksimal:
python
from scrapling import StealthyFetcher
import asyncio
async def scrape_with_stealth_and_recaptcha(target_url, site_key, captcha_type="v2"):
"""
Menggabungkan fitur anti-bot StealthyFetcher dengan CapSolver untuk ReCaptcha.
Args:
target_url: URL yang ingin di-scrape
site_key: Kunci captcha
captcha_type: "v2" atau "v3"
Returns:
Konten halaman setelah menyelesaikan captcha
"""
# Pertama, selesaikan captcha menggunakan CapSolver
print(f"Menyelesaikan ReCaptcha {captcha_type}...")
if captcha_type == "v2":
solution = solve_captcha(
task_type="ReCaptchaV2TaskProxyLess",
website_url=target_url,
website_key=site_key
)
token = solution["gRecaptchaResponse"]
elif captcha_type == "v3":
solution = solve_captcha(
task_type="ReCaptchaV3TaskProxyLess",
website_url=target_url,
website_key=site_key,
pageAction="submit"
)
token = solution["gRecaptchaResponse"]
else:
raise ValueError(f"Jenis captcha tidak dikenal: {captcha_type}")
print(f"Dapatkan token: {token[:50]}...")
# Gunakan StealthyFetcher untuk perilaku seperti browser
fetcher = StealthyFetcher()
# Navigasi ke halaman
page = await fetcher.async_fetch(target_url)
# Sisipkan solusi ReCaptcha menggunakan JavaScript
await page.page.evaluate(f'''() => {{
// Cari bidang g-recaptcha-response dan atur nilainya
let field = document.querySelector('textarea[name="g-recaptcha-response"]');
if (!field) {{
field = document.createElement('textarea');
field.name = "g-recaptcha-response";
field.style.display = "none";
document.body.appendChild(field);
}}
field.value = "{token}";
}}''')
# Cari dan klik tombol submit
submit_button = page.css('button[type="submit"], input[type="submit"]')
if submit_button:
await submit_button[0].click()
# Tunggu navigasi
await page.page.wait_for_load_state('networkidle')
# Dapatkan konten halaman akhir
content = await page.page.content()
return content
# Wrapper sinkron untuk penggunaan yang lebih mudah
def scrape_stealth(target_url, site_key, captcha_type="v2"):
"""Wrapper sinkron untuk scraper stealth asinkron."""
return asyncio.run(
scrape_with_stealth_and_recaptcha(target_url, site_key, captcha_type)
)
# Contoh penggunaan
if __name__ == "__main__":
url = "https://example.com/halaman-terlindungi-tinggi"
site_key = "6LcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxABCD"
content = scrape_stealth(url, site_key, captcha_type="v2")
print(f"Dapatkan {len(content)} byte konten")
Contoh Lengkap: Pengambilan Data Multi-Halaman dengan Sesi
python
from scrapling import StealthyFetcher
import asyncio
class StealthScraper:
"""Pengambil data yang mempertahankan sesi di beberapa halaman."""
def __init__(self, api_key):
self.api_key = api_key
self.fetcher = None
async def __aenter__(self):
self.fetcher = StealthyFetcher()
return self
async def __aexit__(self, *args):
if self.fetcher:
await self.fetcher.close()
async def solve_and_access(self, url, site_key, captcha_type="v2"):
"""Selesaikan ReCaptcha dan akses halaman."""
global CAPSOLVER_API_KEY
CAPSOLVER_API_KEY = self.api_key
# Selesaikan ReCaptcha
task_type = f"ReCaptcha{captcha_type.upper()}TaskProxyLess"
solution = solve_captcha(
task_type=task_type,
website_url=url,
website_key=site_key
)
token = solution["gRecaptchaResponse"]
# Navigasi dan sisipkan token
page = await self.fetcher.async_fetch(url)
# ... lanjutkan dengan interaksi halaman
return page
# Penggunaan
async def main():
async with StealthScraper("kunci_api_anda") as scraper:
page1 = await scraper.solve_and_access(
"https://example.com/login",
"kunci_site_here",
"v2"
)
# Sesi dipertahankan untuk permintaan berikutnya
page2 = await scraper.solve_and_access(
"https://example.com/dashboard",
"kunci_site_lain",
"v3"
)
asyncio.run(main())
Praktik Terbaik & Tips
1. Pembatasan Kecepatan
Jangan menyerang situs web dengan permintaan berlebihan. Implementasikan jeda antara permintaan:
python
import time
import random
def scrape_yang_sopan(urls, min_delay=2, max_delay=5):
"""Mengambil data dengan jeda acak untuk terlihat lebih manusia."""
results = []
for url in urls:
result = scrape_page(url)
results.append(result)
# Jeda acak antara permintaan
delay = random.uniform(min_delay, max_delay)
time.sleep(delay)
return results
2. Penanganan Kesalahan
Selalu tangani kegagalan dengan baik:
python
def solve_captcha_yang_kuat(task_type, website_url, website_key, max_retries=3, **kwargs):
"""Menyelesaikan captcha dengan retry otomatis."""
for attempt in range(max_retries):
try:
return solve_captcha(task_type, website_url, website_key, **kwargs)
except Exception as e:
print(f"Uji coba {attempt + 1} gagal: {e}")
if attempt < max_retries - 1:
time.sleep(5) # Tunggu sebelum retry
else:
raise
3. Hormati robots.txt
Periksa robots.txt situs sebelum mengambil data:
python
from urllib.robotparser import RobotFileParser
def bisa_scrape(url):
"""Periksa apakah mengambil data diizinkan oleh robots.txt."""
rp = RobotFileParser()
rp.set_url(f"{url}/robots.txt")
rp.read()
return rp.can_fetch("*", url)
4. Gunakan Proxy untuk Skala
Saat mengambil data dalam skala besar, putar proxy untuk menghindari blokir IP:
python
# CapSolver mendukung tugas dengan proxy
solution = solve_captcha(
task_type="ReCaptchaV2Task", # Perhatikan: tidak ada "ProxyLess"
website_url=target_url,
website_key=site_key,
proxy="http://user:pass@proxy.example.com:8080"
)
5. Simpan Solusi Jika Memungkinkan
Token captcha biasanya berlaku selama 1-2 menit. Jika Anda perlu membuat beberapa permintaan, gunakan ulang token:
python
import time
class CacheCaptcha:
def __init__(self, ttl=120): # TTL default 2 menit
self.cache = {}
self.ttl = ttl
def get_or_solve(self, key, solve_func):
"""Dapatkan token yang disimpan atau selesaikan yang baru."""
if key in self.cache:
token, timestamp = self.cache[key]
if time.time() - timestamp < self.ttl:
return token
token = solve_func()
self.cache[key] = (token, time.time())
return token
Tabel Perbandingan
Perbandingan Jenis Captcha
| Fitur | ReCaptcha v2 | ReCaptcha v3 | Cloudflare Turnstile |
|---|---|---|---|
| Interaksi Pengguna | Checkbox + tantangan mungkin | Tidak ada | Minimal atau tidak ada |
| Format Kunci Situs | 6L... |
6L... |
0x4... |
| Bidang Respons | g-recaptcha-response |
g-recaptcha-response |
cf-turnstile-response |
| Parameter Action | Tidak | Ya (diperlukan) | Opsional |
| Waktu Penyelesaian | 1-10 detik | 1-10 detik | 1-20 detik |
| Tugas CapSolver | ReCaptchaV2TaskProxyLess |
ReCaptchaV3TaskProxyLess |
AntiTurnstileTaskProxyLess |
Perbandingan Fetcher Scrapling
| Fitur | Fetcher | StealthyFetcher |
|---|---|---|
| Kecepatan | Sangat cepat | Lebih lambat |
| Dukungan JavaScript | Tidak | Ya |
| Fingerprint Browser | Tidak ada | Firefox nyata |
| Penggunaan Memori | Rendah | Lebih tinggi |
| Bypass Cloudflare | Tidak | Ya |
| Paling Cocok Untuk | Permintaan sederhana | Anti-bot kompleks |
Pertanyaan yang Sering Diajukan
Q: Berapa biaya CapSolver?
Periksa halaman harga CapSolver untuk tarif terkini.
Q: Bagaimana cara menemukan kunci situs di halaman web?
Cari sumber halaman (Ctrl+U) untuk:
- Atribut
data-sitekey - Pemanggilan JavaScript
grecaptcha.execute - Parameter
render=di URL skrip reCaptcha class="cf-turnstile"untuk Turnstile
Q: Apa yang terjadi jika token captcha kedaluwarsa sebelum saya menggunakannya?
Token biasanya kedaluwarsa setelah 1-2 menit. Selesaikan captcha secepat mungkin sebelum mengirimkan formulir. Jika Anda mendapatkan kesalahan validasi, selesaikan kembali dengan token baru.
Q: Bisakah saya menggunakan CapSolver dengan kode async?
Ya! Bungkus fungsi solve dalam executor async:
python
import asyncio
async def async_solve_captcha(*args, **kwargs):
loop = asyncio.get_event_loop()
return await loop.run_in_executor(
None,
lambda: solve_captcha(*args, **kwargs)
)
Q: Bagaimana cara menangani beberapa ReCaptchas di satu halaman?
Selesaikan setiap captcha secara terpisah dan sertakan semua token dalam pengiriman Anda:
python
# Selesaikan beberapa ReCaptchas
solution_v2 = solve_captcha("ReCaptchaV2TaskProxyLess", url, key1)
solution_v3 = solve_captcha("ReCaptchaV3TaskProxyLess", url, key2, pageAction="submit")
# Kirim token menggunakan metode kelas Scrapling
response = Fetcher.post(url, data={
"g-recaptcha-response": solution_v2["gRecaptchaResponse"],
"g-recaptcha-response-v3": solution_v3["gRecaptchaResponse"],
})
Kesimpulan
Menggabungkan Scrapling dan CapSolver memberikan solusi kuat untuk mengambil data dari situs web yang dilindungi captcha. Berikut ringkasan singkat:
- Gunakan Fetcher Scrapling untuk permintaan sederhana di mana kecepatan penting
- Gunakan StealthyFetcher saat menghadapi sistem anti-bot yang canggih
- Gunakan CapSolver untuk menyelesaikan ReCaptcha v2, v3, dan Cloudflare Turnstile
- Terapkan praktik terbaik seperti pembatasan kecepatan, penanganan kesalahan, dan rotasi proxy
Ingat untuk mengambil data secara bertanggung jawab:
- Hormati ketentuan situs web
- Jangan membebani server dengan permintaan berlebihan
- Gunakan data secara etis
- Pertimbangkan untuk menghubungi pemilik situs web untuk akses API
Siap mulai mengambil data? Dapatkan kunci API CapSolver Anda di capsolver.com dan instal Scrapling dengan pip install "scrapling[all]".
Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.
Lebih lanjut

Cara Menyelesaikan CAPTCHAs dengan Python Menggunakan Botasaurus dan CapSolver (Panduan Lengkap)
Pelajari cara mengintegrasikan Botasaurus (kerangka kerja pengambilan data web Python) dengan API CapSolver untuk menyelesaikan reCAPTCHA v2/v3 dan Turnstile secara otomatis.

Emma Foster
15-Dec-2025

Apa itu Kesalahan 402, 403, 404, dan 429 dalam Web Scraping? Panduan Lengkap
Menguasai penanganan kesalahan web scraping dengan memahami apa yang merupakan kesalahan 402, 403, 404, dan 429. Belajar cara memperbaiki kesalahan 403 Dilarang, menerapkan solusi pembatasan laju untuk kesalahan 429, dan menangani kode status 402 Pembayaran Diperlukan yang baru muncul.

Aloísio Vítor
12-Dec-2025

Web Scraping Dengan Python: 2026 Taktik Terbaik
Pelajari taktik pengambilan data web Python teratas untuk 2026, termasuk menangani konten JavaScript dinamis, mengelola alur otentikasi, menyelesaikan CAPTCHA, mengidentifikasi perangkap tersembunyi, meniru perilaku manusia, mengoptimalkan pola permintaan, dan mengurangi penggunaan sumber daya dalam proyek pengambilan data web skala besar.

Ethan Collins
12-Dec-2025

Pengambilan Data Web Tanpa Terblokir dan Cara Mengatasi Captcha Web Scraping
Scrapping web telah menjadi teknik yang populer untuk mengekstrak data dari situs web. Namun, banyak situs web menggunakan langkah anti-scrapping, termasuk...

Ethan Collins
11-Dec-2025

Penjelajahan Web vs. Pengambilan Data Web: Perbedaan Essensial
Ketahui perbedaan penting antara web crawling dan web scraping. Pelajari tujuan mereka yang berbeda, 10 penggunaan kasus yang kuat, dan bagaimana CapSolver membantu melewati blok AWS WAF dan CAPTCHA untuk pengumpulan data yang mulus.

Nikolai Smirnov
09-Dec-2025

Cara Menyelesaikan Captchas Ketika Web Scraping dengan Scrapling dan CapSolver
Scrapling + CapSolver memungkinkan pengambilan data otomatis dengan ReCaptcha v2/v3 dan Cloudflare Turnstile bypass.

Adélia Cruz
05-Dec-2025


