CAPSOLVER
Blog
Cara Menggunakan aiohttp untuk Web Scraping

Cara Menggunakan aiohttp untuk Web Scraping

Logo of CapSolver

Ethan Collins

Pattern Recognition Specialist

23-Sep-2024

Apa itu aiohttp?

aiohttp adalah kerangka kerja HTTP klien/server asinkron yang kuat untuk Python. Ia memanfaatkan pustaka asyncio Python untuk mengaktifkan operasi jaringan bersamaan, membuatnya sangat efisien untuk tugas-tugas seperti pengambilan web, pengembangan web, dan operasi yang terikat jaringan.

Fitur:

  • I/O Asinkron: Dibangun di atas asyncio untuk operasi jaringan non-blokir.
  • Dukungan Klien dan Server: Menyediakan implementasi klien HTTP dan server.
  • Dukungan WebSockets: Dukungan asli untuk protokol WebSockets.
  • Kinerja Tinggi: Penanganan koneksi ganda secara bersamaan yang efisien.
  • Ekstensibilitas: Mendukung middleware, sinyal, dan plugin untuk penyesuaian tingkat lanjut.

Prasyarat

Sebelum Anda mulai menggunakan aiohttp, pastikan Anda memiliki:

Memulai dengan aiohttp

Instalasi

Instal aiohttp menggunakan pip:

bash Copy
pip install aiohttp

Contoh Dasar: Melakukan Permintaan GET

Berikut cara melakukan permintaan GET sederhana menggunakan aiohttp:

python Copy
import asyncio
import aiohttp

async def fetch(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            status = response.status
            text = await response.text()
            print(f'Kode Status: {status}')
            print('Badan Respons:', text)

if __name__ == '__main__':
    asyncio.run(fetch('https://httpbin.org/get'))

Contoh Pengambilan Web: Mengambil Kutipan dari Situs Web

Mari kita ambil situs web Quotes to Scrape untuk mengekstrak kutipan dan penulisnya:

python Copy
import asyncio
import aiohttp
from bs4 import BeautifulSoup

async def fetch_content(url):
    async with aiohttp.ClientSession() as session:
        async with session.get(url) as response:
            return await response.text()

async def scrape_quotes():
    url = 'http://quotes.toscrape.com/'
    html = await fetch_content(url)
    soup = BeautifulSoup(html, 'html.parser')
    quotes = soup.find_all('div', class_='quote')
    for quote in quotes:
        text = quote.find('span', class_='text').get_text(strip=True)
        author = quote.find('small', class_='author').get_text(strip=True)
        print(f'{text} — {author}')

if __name__ == '__main__':
    asyncio.run(scrape_quotes())

Keluaran:

Copy
“Dunia yang kita ciptakan adalah proses pemikiran kita. Itu tidak dapat diubah tanpa mengubah pemikiran kita.” — Albert Einstein
“Adalah pilihan kita, Harry, yang menunjukkan siapa kita sebenarnya, jauh lebih dari kemampuan kita.” — J.K. Rowling
... (kutipan tambahan)

Menangani Captcha dengan CapSolver dan aiohttp

Pada bagian ini, kita akan menjelajahi cara mengintegrasikan CapSolver dengan aiohttp untuk melewati captcha. CapSolver adalah layanan eksternal yang membantu dalam memecahkan berbagai jenis captcha, termasuk ReCaptcha V2 dan captcha.

Kami akan menunjukkan cara memecahkan ReCaptcha V2 menggunakan CapSolver dan kemudian mengakses halaman yang memerlukan pemecahan captcha.

Contoh: Memecahkan ReCaptcha V2 dengan CapSolver dan aiohttp

Pertama, instal paket CapSolver:

bash Copy
pip install capsolver

Sekarang, berikut cara Anda memecahkan ReCaptcha V2 dan menggunakan solusinya dalam permintaan Anda:

python Copy
import asyncio
import os
import aiohttp
import capsolver

# Tetapkan kunci API CapSolver Anda
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "Kunci API CapSolver Anda")
PAGE_URL = os.getenv("PAGE_URL", "https://example.com")  # URL Halaman dengan captcha
SITE_KEY = os.getenv("SITE_KEY", "SITE_KEY")             # Kunci situs captcha

async def solve_recaptcha_v2():
    solution = capsolver.solve({
        "type": "ReCaptchaV2TaskProxyless",
        "websiteURL": PAGE_URL,
        "websiteKey": SITE_KEY
    })
    return solution['solution']['gRecaptchaResponse']

async def access_protected_page():
    captcha_response = await solve_recaptcha_v2()
    print("Captcha Terpecahkan!")

    async with aiohttp.ClientSession() as session:
        data = {
            'g-recaptcha-response': captcha_response,
            # Sertakan data formulir lainnya jika diperlukan oleh situs web
        }
        async with session.post(PAGE_URL, data=data) as response:
            content = await response.text()
            print('Konten Halaman:', content)

if __name__ == '__main__':
    asyncio.run(access_protected_page())

Catatan: Ganti PAGE_URL dengan URL halaman yang berisi captcha dan SITE_KEY dengan kunci situs captcha. Kunci situs biasanya ditemukan dalam kode sumber HTML halaman di dalam widget captcha.

Memecahkan captcha dengan CapSolver

Untuk memecahkan captcha, sesuaikan jenis tugas di fungsi capsolver.solve():

python Copy
async def solve_captcha():
    solution = capsolver.solve({
        "type": "captchaTaskProxyless",
        "websiteURL": PAGE_URL,
        "websiteKey": SITE_KEY
    })
    return solution['solution']['gRecaptchaResponse']

Menangani Proksi dengan aiohttp

Untuk mengarahkan permintaan Anda melalui proksi, tentukan parameter proxy:

python Copy
import asyncio
import aiohttp

async def fetch(url, proxy):
    async with aiohttp.ClientSession() as session:
        async with session.get(url, proxy=proxy) as response:
            return await response.text()

async def main():
    proxy = 'http://username:password@proxyserver:port'
    url = 'https://httpbin.org/ip'
    content = await fetch(url, proxy)
    print('Badan Respons:', content)

if __name__ == '__main__':
    asyncio.run(main())

Anda dapat mengelola cookie menggunakan CookieJar:

python Copy
import asyncio
import aiohttp

async def main():
    jar = aiohttp.CookieJar()
    async with aiohttp.ClientSession(cookie_jar=jar) as session:
        await session.get('https://httpbin.org/cookies/set?name=value')
        # Tampilkan cookie
        for cookie in jar:
            print(f'{cookie.key}: {cookie.value}')

if __name__ == '__main__':
    asyncio.run(main())

Penggunaan Lanjutan: Header Kustom dan Permintaan POST

Anda dapat mengirim header kustom dan melakukan permintaan POST dengan aiohttp:

python Copy
import asyncio
import aiohttp

async def main():
    headers = {
        'User-Agent': 'Mozilla/5.0 (compatible)',
        'Accept-Language': 'en-US,en;q=0.5',
    }
    data = {
        'username': 'testuser',
        'password': 'testpass',
    }
    async with aiohttp.ClientSession() as session:
        async with session.post('https://httpbin.org/post', headers=headers, data=data) as response:
            json_response = await response.json()
            print('Respons JSON:', json_response)

if __name__ == '__main__':
    asyncio.run(main())

Kode Bonus

Klaim Kode Bonus Anda untuk solusi captcha teratas di CapSolver: scrape. Setelah menebusnya, Anda akan mendapatkan bonus tambahan 5% setelah setiap pengisian ulang, tanpa batas.

Kesimpulan

Dengan aiohttp, Anda dapat secara efisien melakukan tugas pengambilan web asinkron dan menangani beberapa operasi jaringan secara bersamaan. Mengintegrasikannya dengan CapSolver memungkinkan Anda untuk melewati captcha seperti ReCaptcha V2 dan captcha, memungkinkan akses ke konten yang mungkin dibatasi.

Jangan ragu untuk mengembangkan contoh-contoh ini agar sesuai dengan kebutuhan spesifik Anda. Selalu ingat untuk menghormati persyaratan layanan situs web yang Anda ambil dan mematuhi pedoman hukum.

Selamat mengambil!

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

Penggunaan Browser vs Browserbase: Manakah Alat Otomatisasi Browser yang Lebih Baik untuk Agen AI?
Penggunaan Browser vs Browserbase: Manakah Alat Otomatisasi Browser yang Lebih Baik untuk Agen AI?

Bandingkan Penggunaan Browser dengan Browserbase untuk otomatisasi agen AI. Jelajahi fitur, harga, dan cara menyelesaikan CAPTCHA dengan CapSolver untuk alur kerja yang mulus.

AI
Logo of CapSolver

Anh Tuan

26-Jan-2026

Larangan IP pada 2026: Bagaimana Cara Kerjanya dan Cara Praktis untuk Menghindarinya
Larangan IP pada 2026: Bagaimana Cara Kerjanya dan Cara Praktis untuk Mengelaknya

Pelajari cara menghindari pembatasan IP pada 2026 dengan panduan lengkap kami. Temukan teknik pemblokiran IP modern dan solusi praktis seperti proxy residensial dan solver CAPTCHA.

web scraping
Logo of CapSolver

Emma Foster

26-Jan-2026

Maxun dengan Integrasi CapSolver
Cara Menyelesaikan Captcha di Maxun dengan Integrasi CapSolver

Panduan praktis untuk mengintegrasikan CapSolver dengan Maxun dalam penggunaan nyata pengambilan data web. Pelajari cara mengelola reCAPTCHA, Cloudflare Turnstile, dan situs yang dilindungi CAPTCHA dengan menggunakan alur kerja pre-auth dan robot.

web scraping
Logo of CapSolver

Adélia Cruz

21-Jan-2026

Browser4 dengan Integrasi CapSolver
Cara menyelesaikan Captcha di Browser4 dengan integrasi CapSolver

Otomasi Browser4 dengan throughput tinggi dikombinasikan dengan CapSolver untuk menangani tantangan CAPTCHA dalam ekstraksi data web skala besar.

web scraping
Logo of CapSolver

Anh Tuan

21-Jan-2026

Alat Ekstraksi Data Terbaik yang Harus Digunakan pada 2026 (Perbandingan Lengkap)
Alat Ekstraksi Data Terbaik untuk 2026 (Perbandingan Lengkap)

Temukan alat ekstraksi data terbaik untuk 2026. Bandingkan platform terkemuka web scraping, ETL, dan berbasis AI untuk mengotomatisasi pengumpulan data dan alur kerja AI Anda.

AI
Logo of CapSolver

Emma Foster

21-Jan-2026

Selesaikan Tak Terbatas Captcha dengan Solver Captcha Terbaik
Menyelesaikan Captcha Tanpa Batas dengan Pemecah Captcha Terbaik

Pelajari cara menyelesaikan Captcha tak terbatas dengan lancar menggunakan solver Captcha terbaik, panduan rinci tentang mengatur dan mengotomasi solusi Captcha secara efektif

reCAPTCHA
Logo of CapSolver

Adélia Cruz

20-Jan-2026