
Emma Foster
Machine Learning Engineer

Amazon Web Services (AWS) Web Application Firewall (WAF) adalah layanan keamanan yang kuat yang membantu melindungi aplikasi web dari eksploit web umum yang dapat memengaruhi ketersediaan, mengancam keamanan, atau menghabiskan sumber daya yang berlebihan. Meskipun penting untuk melindungi aset web, AWS WAF dapat memberikan tantangan signifikan bagi proses pengambilan data otomatis dan pengambilan data, seringkali memblokir crawler yang sah.
Artikel ini memberikan panduan komprehensif tentang cara mengintegrasikan Crawl4AI, crawler web lanjutan, dengan CapSolver, layanan solusi CAPTCHA dan anti-bot terkemuka, untuk secara efektif menyelesaikan perlindungan AWS WAF. Kami akan menjelaskan metode integrasi API dan ekstensi, termasuk contoh kode dan penjelasan, untuk memastikan tugas otomasi web Anda dapat berjalan tanpa gangguan.
AWS WAF beroperasi dengan memantau permintaan HTTP(S) yang diteruskan ke distribusi Amazon CloudFront, Application Load Balancer, Amazon API Gateway, atau API GraphQL AWS AppSync. Ini memungkinkan Anda mengatur aturan yang memblokir pola serangan umum, seperti injeksi SQL atau scripting lintas situs, dan juga dapat menyaring lalu lintas berdasarkan alamat IP, header HTTP, tubuh HTTP, atau string URI. Untuk crawler web, ini sering berarti:
CapSolver menyediakan solusi yang kuat untuk mendapatkan cookie aws-waf-token yang diperlukan, yang merupakan kunci untuk melewati AWS WAF. Ketika diintegrasikan dengan Crawl4AI, ini memungkinkan crawler Anda untuk meniru perilaku pengguna yang sah dan berhasil menavigasi situs yang dilindungi.
💡 Bonus Eksklusif untuk Pengguna Integrasi Crawl4AI:
Untuk merayakan integrasi ini, kami menawarkan kode bonus 6% —CRAWL4untuk semua pengguna CapSolver yang mendaftar melalui tutorial ini.
Cukup masukkan kode saat recharge di Dashboard untuk menerima kredit tambahan 6% secara instan.
Cara yang paling efektif untuk menangani tantangan AWS WAF dengan Crawl4AI dan CapSolver adalah melalui integrasi API. Metode ini melibatkan penggunaan CapSolver untuk mendapatkan aws-waf-token yang diperlukan, lalu menyisipkan token ini sebagai cookie ke dalam konteks browser Crawl4AI sebelum memuat ulang halaman target.
aws-waf-token.AntiAwsWafTaskProxyLess dan websiteURL. CapSolver akan mengembalikan cookie aws-waf-token yang diperlukan.js_code Crawl4AI untuk menyetel aws-waf-token yang diperoleh sebagai cookie dalam konteks browser. Setelah menyetel cookie, halaman dimuat ulang.aws-waf-token yang benar, Crawl4AI sekarang dapat mengakses halaman yang dilindungi dengan sukses dan melanjutkan tugas ekstraksi data.Kode Python berikut menunjukkan cara mengintegrasikan API CapSolver dengan Crawl4AI untuk menyelesaikan tantangan AWS WAF. Contoh ini menargetkan halaman onboarding NFT Porsche yang dilindungi oleh AWS WAF.
import asyncio
import capsolver
from crawl4ai import *
# TODO: set your config
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # your api key of capsolver
site_url = "https://nft.porsche.com/onboarding@6" # page url of your target site
cookie_domain = ".nft.porsche.com" # the domain name to which you want to apply the cookie
captcha_type = "AntiAwsWafTaskProxyLess" # type of your target captcha
capsolver.api_key = api_key
async def main():
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
)
async with AsyncWebCrawler(config=browser_config) as crawler:
await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# get aws waf cookie using capsolver sdk
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
})
cookie = solution["cookie"]
print("aws waf cookie:", cookie)
js_code = """
document.cookie = \'aws-waf-token=""" + cookie + """;domain=""" + cookie_domain + """;path=/\
\';
location.reload();
"""
wait_condition = """() => {
return document.title === \'Join Porsche’s journey into Web3\';
}"""
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
wait_for=f"js:{wait_condition}"
)
result_next = await crawler.arun(
url=site_url,
config=run_config,
)
print(result_next.markdown)
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
capsolver.solve dipanggil dengan tipe AntiAwsWafTaskProxyLess dan websiteURL untuk mendapatkan cookie aws-waf-token. Ini adalah langkah penting di mana AI CapSolver menyelesaikan tantangan WAF dan memberikan cookie yang diperlukan.js_code): String js_code berisi JavaScript yang menyetel cookie aws-waf-token dalam konteks browser menggunakan document.cookie. Lalu, location.reload() dipicu untuk memuat ulang halaman, memastikan permintaan berikutnya mencakup cookie yang valid baru saja disetel.wait_for: wait_condition didefinisikan untuk memastikan Crawl4AI menunggu hingga judul halaman sesuai dengan 'Join Porsche’s journey into Web3', menunjukkan bahwa WAF berhasil dilewati dan konten yang diinginkan dimuat.Ekstensi CapSolver menawarkan pendekatan yang disederhanakan untuk menangani tantangan AWS WAF, terutama ketika memanfaatkan kemampuan penyelesaian otomatisnya dalam konteks browser yang tetap dikelola oleh Crawl4AI.
user_data_dir agar menjalankan instance browser yang mempertahankan ekstensi CapSolver yang terinstal dan konfigurasinya.aws-waf-token. Cookie ini kemudian secara otomatis diterapkan ke permintaan berikutnya.Contoh ini menunjukkan bagaimana Crawl4AI dapat dikonfigurasi untuk menggunakan profil browser dengan ekstensi CapSolver untuk penyelesaian AWS WAF otomatis.
import asyncio
import time
from crawl4ai import *
# TODO: set your config
user_data_dir = "/browser-profile/Default1" # Ensure this path is correctly set and contains your configured extension
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120", # Optional: configure proxy if needed
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://nft.porsche.com/onboarding@6",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# The extension will automatically solve the AWS WAF upon page load.
# You might need to add a wait condition or time.sleep for the WAF to be solved
# before proceeding with further actions.
time.sleep(30) # Example wait, adjust as necessary for the extension to operate
# Continue with other Crawl4AI operations after AWS WAF is solved
# For instance, check for elements or content that appear after successful verification
# print(result_initial.markdown) # You can inspect the page content after the wait
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
user_data_dir: Parameter ini penting untuk Crawl4AI agar menjalankan instance browser yang mempertahankan ekstensi CapSolver yang terinstal dan konfigurasinya. Pastikan jalur menunjuk ke direktori profil browser yang valid di mana ekstensi terinstal.time.sleep ditambahkan sebagai contoh umum untuk memberi waktu ekstensi menyelesaikan operasi latar belakangnya. Untuk solusi yang lebih kuat, pertimbangkan menggunakan fungsi wait_for Crawl4AI untuk memeriksa perubahan halaman tertentu yang menunjukkan penyelesaian AWS WAF yang berhasil.Jika Anda lebih suka memicu penyelesaian tantangan AWS WAF secara manual pada titik tertentu dalam logika pengambilan data Anda, Anda dapat mengatur parameter manualSolving ekstensi menjadi true dan kemudian menggunakan js_code untuk mengklik tombol solver yang disediakan oleh ekstensi.
import asyncio
import time
from crawl4ai import *
# TODO: set your config
user_data_dir = "/browser-profile/Default1" # Ensure this path is correctly set and contains your configured extension
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120", # Optional: configure proxy if needed
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://nft.porsche.com/onboarding@6",
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# Wait for a moment for the page to load and the extension to be ready
time.sleep(6)
# Use js_code to trigger the manual solve button provided by the CapSolver extension
js_code = """
let solverButton = document.querySelector(\'#capsolver-solver-tip-button\');
if (solverButton) {
// click event
const clickEvent = new MouseEvent(\'click\', {
bubbles: true,
cancelable: true,
view: window
});
solverButton.dispatchEvent(clickEvent);
}
"""
print(js_code)
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
)
result_next = await crawler.arun(
url="https://nft.porsche.com/onboarding@6",
config=run_config
)
print("JS Execution results:", result_next.js_execution_result)
# Allow time for the AWS WAF to be solved after manual trigger
time.sleep(30) # Example wait, adjust as necessary
# Continue with other Crawl4AI operations
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
manualSolving: Sebelum menjalankan kode ini, pastikan config.js ekstensi CapSolver memiliki manualSolving diatur ke true.js_code mensimulasikan event klik pada #capsolver-solver-tip-button, yaitu tombol yang disediakan oleh ekstensi CapSolver untuk penyelesaian manual. Ini memberi Anda kontrol yang tepat kapan proses penyelesaian AWS WAF dimulai.Mengintegrasikan Crawl4AI dengan CapSolver menawarkan solusi yang kuat dan efisien untuk melewati perlindungan AWS WAF, memungkinkan pengambilan data dan ekstraksi data tanpa gangguan. Dengan memanfaatkan kemampuan CapSolver untuk mendapatkan token aws-waf-token yang kritis dan kemampuan fleksibel Crawl4AI untuk menyisipkan js_code, pengembang dapat memastikan proses otomatis mereka menavigasi situs yang dilindungi WAF secara mulus.
Integrasi ini tidak hanya meningkatkan stabilitas dan tingkat keberhasilan crawler Anda, tetapi juga mengurangi secara signifikan beban operasional yang terkait dengan mengelola mekanisme anti-bot yang kompleks. Dengan kombinasi yang kuat ini, Anda dapat mengumpulkan data dari aplikasi web yang paling aman dengan percaya diri.
Q1: Apa itu AWS WAF dan mengapa digunakan dalam pengambilan data web?
A1: AWS WAF (Web Application Firewall) adalah layanan keamanan berbasis cloud yang melindungi aplikasi web dari eksploit web umum. Dalam pengambilan data, AWS WAF ditemui sebagai mekanisme anti-bot yang memblokir permintaan yang dianggap mencurigakan atau otomatis, memerlukan teknik melewati untuk mengakses data target.
Q2: Bagaimana CapSolver membantu melewati AWS WAF?
A2: CapSolver menyediakan layanan khusus, seperti AntiAwsWafTaskProxyLess, untuk menyelesaikan tantangan AWS WAF. Ini mendapatkan cookie aws-waf-token yang diperlukan, yang kemudian digunakan oleh Crawl4AI untuk meniru perilaku pengguna yang sah dan mendapatkan akses ke situs yang dilindungi.
Q3: Apa metode integrasi utama AWS WAF dengan Crawl4AI dan CapSolver?
A3: Terdapat dua metode utama: integrasi API, di mana API CapSolver dipanggil untuk mendapatkan aws-waf-token yang kemudian disisipkan melalui js_code Crawl4AI, dan integrasi Ekstensi Browser, di mana ekstensi CapSolver secara otomatis menangani tantangan WAF dalam konteks browser yang persisten.
Q4: Apakah perlu menggunakan proxy saat menyelesaikan AWS WAF dengan CapSolver?
A4: Meskipun tidak selalu wajib, menggunakan proxy bisa menjadi manfaat, terutama jika operasi scraping Anda memerlukan anonimitas atau mensimulasikan permintaan dari lokasi geografis tertentu. Tugas CapSolver umumnya mendukung konfigurasi proxy.
Q5: Apa manfaat dari mengintegrasikan Crawl4AI dan CapSolver untuk AWS WAF?
A5: Integrasi ini menghasilkan penanganan WAF otomatis, peningkatan efisiensi crawling, ketangguhan crawler yang lebih baik terhadap mekanisme anti-bot, dan pengurangan biaya operasional dengan meminimalkan intervensi manual.
Selesaikan CAPTCHA AWS WAF dalam pengambilan data web dengan CapSolver. Tingkatkan efisiensi, selesaikan tantangan, dan pastikan data mengalir secara mulus.

Menguasai penyelesaian tantangan CAPTCHA AWS WAF Amazon dalam otomatisasi browser dengan strategi ahli. Pelajari cara mengintegrasikan CapSolver untuk alur kerja otomatisasi yang mulus dan efisien. Panduan ini mencakup solusi berbasis token dan berbasis klasifikasi.
