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

CAPTCHA Kecerdasan Buatan Ditenagai oleh Model Besar
CAPTCHA AI yang Didukung oleh Model Skala Besar: Mengapa Lebih Cocok untuk Kasus Perusahaan

Bagaimana model visual AI mengubah pengenalan CAPTCHA dan mengapa solusi tingkat perusahaan membutuhkan data, skala, dan pelatihan kustom.

AI
Logo of CapSolver

Lucas Mitchell

13-Mar-2026

OpenClaw vs. Nanobot
OpenClaw melawan Nanobot: Memilih Agen AI Anda untuk Otomasi

Bandingkan OpenClaw dan Nanobot, dua kerangka kerja agen AI terkemuka, untuk otomatisasi yang efisien. Temukan fitur, kinerja, dan cara CapSolver meningkatkan kemampuan mereka.

AI
Logo of CapSolver

Adรฉlia Cruz

11-Mar-2026

Selesaikan CAPTCHA di OpenClaw
Cara Menyelesaikan CAPTCHA di OpenClaw โ€“ Panduan Langkah demi Langkah dengan Ekstensi CapSolver

Pelajari cara menyelesaikan CAPTCHA di OpenClaw dengan ekstensi CapSolver Chrome untuk otomatisasi browser AI yang berjalan lancar.

AI
Logo of CapSolver

Emma Foster

06-Mar-2026

.Judul PicoClaw + CapSolver
PicoClaw Automation: Panduan untuk Mengintegrasikan CapSolver API

Pelajari cara mengintegrasikan CapSolver dengan PicoClaw untuk penyelesaian CAPTCHA otomatis pada perangkat keras edge yang sangat ringan seharga $10.

AI
Logo of CapSolver

Emma Foster

02-Mar-2026

Cara Mengotomasi Penyelesaian reCAPTCHA untuk Platform Pengujian Standar Kecerdasan Buatan
Cara Mengotomasi Penyelesaian reCAPTCHA untuk Platform Pembandingan Kecerdasan Buatan

Pelajari cara mengotomatisasi reCAPTCHA v2 dan v3 untuk pembandingan AI. Gunakan CapSolver untuk mempermudah pengumpulan data dan menjaga alur kerja AI berkinerja tinggi.

reCAPTCHA
Logo of CapSolver

Sora Fujimoto

28-Feb-2026

Menguasai Tantangan CAPTCHA dalam Pengambilan Data Pekerjaan (Panduan 2026)
Menguasai Tantangan CAPTCHA dalam Pencarian Data Pekerjaan (Panduan 2026)

Panduan lengkap untuk memahami dan mengatasi tantangan CAPTCHA dalam penggalian data pekerjaan. Pelajari cara mengelola reCAPTCHA dan hambatan lainnya dengan tips ahli kami dan contoh kode.

The other captcha
Logo of CapSolver

Ethan Collins

28-Feb-2026