
Ethan Collins
Pattern Recognition Specialist

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:
asyncio untuk operasi jaringan non-blokir.Sebelum Anda mulai menggunakan aiohttp, pastikan Anda memiliki:
Instal aiohttp menggunakan pip:
pip install aiohttp
Berikut cara melakukan permintaan GET sederhana menggunakan aiohttp:
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'))
Mari kita ambil situs web Quotes to Scrape untuk mengekstrak kutipan dan penulisnya:
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)
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.
Pertama, instal paket CapSolver:
pip install capsolver
Sekarang, berikut cara Anda memecahkan ReCaptcha V2 dan menggunakan solusinya dalam permintaan Anda:
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.
Untuk memecahkan captcha, sesuaikan jenis tugas di fungsi capsolver.solve():
async def solve_captcha():
solution = capsolver.solve({
"type": "captchaTaskProxyless",
"websiteURL": PAGE_URL,
"websiteKey": SITE_KEY
})
return solution['solution']['gRecaptchaResponse']
Untuk mengarahkan permintaan Anda melalui proksi, tentukan parameter proxy:
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:
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())
Anda dapat mengirim header kustom dan melakukan permintaan POST dengan aiohttp:
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())
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.

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!
Pelajari apa yang memicu Kesalahan Cloudflare 1020 Akses Ditolak, bagaimana Firewall Aplikasi Web dan deteksi bot bekerja, dan bagaimana pengembang dapat mengurangi kesalahan positif dalam alur kerja otomatis yang sah.

Pelajari cara menggunakan template CapSolver n8n untuk memantau halaman produk yang dilindungi oleh AWS WAF, menyelesaikan tantangan, mengekstrak harga, membandingkan perubahan, dan memicu notifikasi secara otomatis.
