Cara Menggunakan aiohttp untuk Web Scraping

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
asynciountuk 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:
- Python 3.7 atau lebih tinggi
- pip untuk menginstal paket Python
Memulai dengan aiohttp
Instalasi
Instal aiohttp menggunakan pip:
bash
pip install aiohttp
Contoh Dasar: Melakukan Permintaan GET
Berikut cara melakukan permintaan GET sederhana menggunakan aiohttp:
python
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
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:
“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
pip install capsolver
Sekarang, berikut cara Anda memecahkan ReCaptcha V2 dan menggunakan solusinya dalam permintaan Anda:
python
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
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
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())
Menangani Cookie dengan aiohttp
Anda dapat mengelola cookie menggunakan CookieJar:
python
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
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?
Bandingkan Penggunaan Browser dengan Browserbase untuk otomatisasi agen AI. Jelajahi fitur, harga, dan cara menyelesaikan CAPTCHA dengan CapSolver untuk alur kerja yang mulus.

Anh Tuan
26-Jan-2026

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.

Emma Foster
26-Jan-2026

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.

Adélia Cruz
21-Jan-2026

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.

Anh Tuan
21-Jan-2026

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.

Emma Foster
21-Jan-2026

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

Adélia Cruz
20-Jan-2026

