Cara Menyelesaikan Captcha / Tantangan AWS dengan Python

Ethan Collins
Pattern Recognition Specialist
04-Dec-2025

Pendahuluan
Apakah tugas pengambilan data web atau otomasi Anda diblokir oleh AWS WAF (Web Application Firewall) yang tampaknya tidak terdaki? Ini adalah tantangan umum bagi banyak pengembang. AWS WAF adalah layanan keamanan yang kuat dari Amazon yang dirancang untuk melindungi situs web dari eksploit web umum dan bot jahat. Ini mengidentifikasi dan memblokir aktivitas mencurigakan dengan menganalisis pola lalu lintas, menggunakan metode seperti tantangan JavaScript (mengembalikan kode status 202) dan captcha gambar yang lebih kompleks (mengembalikan kode status 405).
Meskipun penting untuk perlindungan situs web, langkah keamanan ini bisa menjadi penghalang besar bagi skrip otomasi yang sah. Untungnya, dengan alat yang tepat, Anda dapat melewati perlindungan ini secara efektif. Panduan ini akan memberikan panduan langkah demi langkah tentang cara menggunakan Python dan CapSolver untuk mendapatkan aws-waf-token secara mudah, memungkinkan akses yang mulus ke situs web yang dilindungi AWS WAF.
⚙️ Prasyarat
Sebelum memulai, pastikan Anda memiliki alat dan informasi berikut siap:
- Proxy yang berfungsi: Ini sangat penting untuk menyelesaikan AWS WAF. Sangat disarankan untuk menggunakan proxy ISP atau rumah tangga untuk menghindari diblokir karena reputasi IP yang buruk.
- Python terinstal: Pastikan Python terinstal di sistem Anda.
- Kunci API CapSolver: Anda akan membutuhkan akun CapSolver (Daftar) untuk mendapatkan kunci API dari dashboard.
🤖 Langkah 1: Instal Paket Python yang Diperlukan
Pertama, kita perlu menginstal beberapa perpustakaan Python kunci untuk membuat permintaan HTTP dan menganalisis HTML. Buka terminal Anda dan jalankan perintah berikut:
bash
pip install capsolver requests beautifulsoup4
👨💻 Langkah 2: Tulis Kode Python untuk Menyelesaikan AWS WAF
Berikut adalah kode Python lengkap untuk menyelesaikan tantangan dan captcha AWS WAF menggunakan CapSolver. Kode ini didasarkan pada praktik terbaru dari dokumentasi resmi CapSolver, memiliki struktur yang lebih bersih, dan secara otomatis menangani dua skenario pemblokiran paling umum.
Kode Python Terbaru
python
import capsolver
import requests
from bs4 import BeautifulSoup
import re
from urllib.parse import urlparse
# -------------------SILAKAN UBAH NILAI-NILAI BERIKUT-------------------
# Detail proxy Anda dalam format: http://username:password@ip:port
PROXY = "http://username:password@ip:port"
# URL situs web tujuan yang ingin Anda selesaikan AWS WAF-nya
PAGE_URL = "https://www.situs-web-aws-anda.com"
# Kunci API Anda dari dashboard CapSolver
CAPSOLVER_API_KEY = "Kunci_API_Anda"
# ----------------------------------------------------------------
def solve_aws_waf(is_captcha_challenge, **kwargs):
"""
Menyelesaikan tantangan AWS WAF atau captcha menggunakan CapSolver.
:param is_captcha_challenge: True untuk captcha (kode status 405), False untuk tantangan JavaScript (kode status 202).
:param kwargs: Parameter yang diperlukan untuk tugas penyelesaian.
:return: Objek solusi, atau None jika gagal.
"""
task_type = "AntiAwsWafTask" if is_captcha_challenge else "AntiAwsWafTaskProxyLess"
print(f"Membuat tugas '{task_type}'...")
task_payload = {
"type": task_type,
"websiteURL": PAGE_URL,
}
# Tambahkan parameter spesifik berdasarkan jenis tantangan
if is_captcha_challenge:
# Untuk tantangan captcha, diperlukan awsKey, awsIv, awsContext
task_payload.update({
"awsKey": kwargs.get("awsKey"),
"awsIv": kwargs.get("awsIv"),
"awsContext": kwargs.get("awsContext"),
"awsChallengeJS": kwargs.get("awsChallengeJS"),
"proxy": PROXY
})
else:
# Untuk tantangan JavaScript, hanya diperlukan URL awsChallengeJS
task_payload["awsChallengeJS"] = kwargs.get("awsChallengeJS")
try:
solution = capsolver.solve(task_payload)
if solution and solution.get("errorId", 0) == 0:
print("Solusi berhasil diperoleh!")
return solution
else:
error_desc = solution.get('errorDescription', 'Kesalahan tidak diketahui') if solution else 'Kesalahan tidak diketahui'
print(f"Gagal menyelesaikan tugas: {error_desc}")
return None
except Exception as e:
print(f"Terjadi pengecualian saat memanggil CapSolver: {e}")
return None
def main():
"""Fungsi utama untuk menjalankan seluruh proses."""
capsolver.api_key = CAPSOLVER_API_KEY
session = requests.Session()
session.proxies = {"http": PROXY, "https": PROXY}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8",
"Accept-Language": "en-US,en;q=0.9",
}
print(f"Mencoba mengakses: {PAGE_URL}")
response = session.get(PAGE_URL, headers=headers)
print(f"Menerima kode status: {response.status_code}")
solution = None
# Skenario 1: Menangani Tantangan JavaScript AWS (Kode Status 202)
if response.status_code == 202:
print("Tantangan JavaScript AWS terdeteksi.")
soup = BeautifulSoup(response.content, 'html.parser')
script_tag = soup.find('script', {'src': re.compile(r'token\.awswaf\.com')})
if script_tag:
challenge_js_url = script_tag['src']
print(f"Menemukan URL tantangan JS: {challenge_js_url}")
solution = solve_aws_waf(is_captcha_challenge=False, awsChallengeJS=challenge_js_url)
else:
print("Kesalahan: Tidak dapat menemukan skrip tantangan AWS.")
# Skenario 2: Menangani Captcha AWS (Kode Status 405)
elif response.status_code == 405:
print("Captcha AWS terdeteksi.")
soup = BeautifulSoup(response.content, 'html.parser')
script_tag = soup.find('script', {'src': re.compile(r'token\.awswaf\.com')})
script_text_tag = soup.find('script', string=re.compile('.*key.*'))
if script_tag and script_text_tag:
challenge_js_url = script_tag['src']
script_text = script_text_tag.string
key = re.search(r'"key":"(.*?)"', script_text).group(1)
iv = re.search(r'"iv":"(.*?)"', script_text).group(1)
context = re.search(r'"context":"(.*?)"', script_text).group(1)
print(f"Parameter yang diekstrak: Key={key[:5]}..., IV={iv[:5]}..., Context={context[:5]}...")
solution = solve_aws_waf(
is_captcha_challenge=True,
awsKey=key,
awsIv=iv,
awsContext=context,
awsChallengeJS=challenge_js_url
)
else:
print("Kesalahan: Gagal mengekstrak semua parameter captcha yang diperlukan dari halaman.")
# Jika berhasil diselesaikan, atur cookie dan coba ulang permintaan
if solution and solution.get("cookie"):
aws_token = solution["cookie"]
print(f"Berhasil memperoleh aws-waf-token: {aws_token[:30]}...")
domain = f".{urlparse(PAGE_URL).netloc}"
session.cookies.set("aws-waf-token", aws_token, domain=domain)
print("Cookie diatur. Mencoba ulang permintaan...")
final_response = session.get(PAGE_URL, headers=headers)
print(f"Kode status permintaan akhir: {final_response.status_code}")
if final_response.status_code == 200:
print("Berhasil melewati AWS WAF!")
# print(final_response.text) # Hapus tanda komentar untuk melihat konten halaman
else:
print("Permintaan gagal setelah mengatur cookie. Periksa token atau proxy.")
else:
print("Gagal menyelesaikan AWS WAF. Keluar.")
if __name__ == "__main__":
main()
⚠️ Variabel Penting yang Harus Diubah
Sebelum menjalankan kode, pastikan untuk mengubah variabel berikut:
PROXY: Ganti ini dengan alamat dan kredensial server proxy Anda. Formatnya harushttp://username:password@ip:port.CAPSOLVER_API_KEY: Temukan kunci API Anda di Dashboard CapSolver dan ganti placeholder-nya.PAGE_URL: Ganti ini dengan URL situs web tujuan yang dilindungi AWS WAF.
Kesimpulan
Dengan mengintegrasikan CapSolver ke dalam alur kerja otomasi Python Anda, Anda dapat secara efektif menangani tantangan JavaScript dan captcha yang dipicu oleh AWS WAF. Pendekatan ini menyederhanakan proses verifikasi yang kompleks menjadi satu panggilan API, memungkinkan Anda fokus pada logika bisnis inti Anda alih-alih terjebak dalam perang terus-menerus melawan teknologi anti-bot. Ini adalah solusi yang tak ternilai bagi setiap pengembang yang perlu berinteraksi dengan situs yang dilindungi AWS WAF.
Gunakan kode bonus CAPN saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan bonus tambahan 5% setiap kali recharge — tanpa batas.
Segera klaim di Dashboard CapSolver Anda
Pertanyaan yang Sering Diajukan (FAQ)
Q1: Mengapa saya harus menggunakan proxy?
A1: AWS WAF secara ketat memantau perilaku alamat IP. Permintaan dari pusat data atau IP yang dicurigai mudah diblokir. Menggunakan proxy berkecepatan tinggi rumah tangga atau ISP meniru perilaku akses pengguna nyata dan merupakan langkah pertama kritis untuk berhasil melewati WAF.
Q2: Berapa lama token aws-waf-token berlaku?
A2: Validitas token ini biasanya sangat singkat, mungkin hanya beberapa menit. Setelah token habis masa berlakunya, Anda perlu menjalankan proses verifikasi kembali untuk mendapatkan yang baru. Penting untuk merancang logika pembaruan token di aplikasi Anda.
Q3: Apa perbedaan antara AntiAwsWafTask dan AntiAwsWafTaskProxyLess?
A3: AntiAwsWafTask digunakan untuk menyelesaikan captcha AWS, yang memerlukan lingkungan browser penuh (biasanya ditemukan dengan kode status 405) dan memerlukan proxy yang Anda sediakan. AntiAwsWafTaskProxyLess digunakan untuk tantangan JavaScript yang lebih sederhana (kode status 202), yang diselesaikan di server CapSolver dan tidak memerlukan Anda menyediakan proxy. Kode kami secara otomatis memilih jenis tugas yang sesuai berdasarkan kode status.
Q4: Apakah metode ini berfungsi untuk semua situs yang menggunakan AWS WAF?
A4: Metode ini efektif untuk konfigurasi AWS WAF standar kebanyakan. Namun, pemilik situs dapat menyesuaikan aturan WAF, yang mungkin meningkatkan kesulitan untuk melewati mereka. Jika Anda mengalami masalah, konsultasikan dokumentasi atau dukungan CapSolver. Tantangan yang berbeda mungkin memerlukan strategi yang berbeda.
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 Captcha / Tantangan AWS dengan Python
Panduan praktis untuk mengatasi tantangan AWS WAF menggunakan Python dan CapSolver, memungkinkan akses yang lebih lancar ke situs web yang dilindungi

Ethan Collins
04-Dec-2025

Cara Menyelesaikan Token CAPTCHA AWS
Blog ini menjelaskan bagaimana Anda dapat menyelesaikan / menyelesaikan amazon waf captcha dengan cara yang cepat, murah, dan mudah dengan menggunakan capsolver.com

Adélia Cruz
01-Dec-2025

Cara menyelesaikan AWS Captcha dengan NodeJS
Dalam artikel ini, kami akan menunjukkan kepada Anda cara menyelesaikan AWS Captcha / Tantangan dengan Node.JS.

Anh Tuan
30-Nov-2025
![Cara Menyelesaikan Captcha AWS Menggunakan Puppeteer [Javascript] dengan Ekstensi CapSolver](https://assets.capsolver.com/prod/posts/aws-captcha-solver-puppeteer/5e93a8e9739b4c24ab2f6cbba8563a93.png)
Cara Menyelesaikan Captcha AWS Menggunakan Puppeteer [Javascript] dengan Ekstensi CapSolver
Pelajari cara menyelesaikan Captcha AWS secara mulus dengan Puppeteer dan Capsolver Extension, panduan lengkap tentang mengatur dan mengotomasi solusi Captcha secara efektif

Emma Foster
25-Nov-2025

Top 5 Alat Pengatasi Tantangan AWS WAF untuk Otomatisasi Perusahaan dan Scraping Web
Temukan 5 alat pemecah tantangan AWS WAF terbaik untuk pengambilan data web yang berjalan lancar dan otomatisasi perusahaan. Temukan solusi terbaik untuk menghindari AWS WAF.

Adélia Cruz
13-Nov-2025

Penyelesaian Otomatis CAPTCHA AWS WAF Menggunakan Integrasi API atau Peramban
Ketahui cara menyelesaikan CAPTCHA AWS WAF secara otomatis menggunakan ekstensi browser dan integrasi API. Panduan ini mencakup pengenalan gambar, tantangan berbasis token, dan solusi CapSolver untuk otomatisasi yang mulus dan penggalian web.

Emma Foster
23-Oct-2025


