Cara Menggunakan curl_cffi untuk Web Scraping

Rajinder Singh
Deep Learning Researcher
17-Sep-2024
Apa itu curl_cffi?
curl_cffi adalah sebuah library Python yang menyediakan binding yang efisien dan low-level ke library libcurl menggunakan CFFI (C Foreign Function Interface). Ini memungkinkan Anda untuk melakukan permintaan HTTP dengan performa tinggi dan kontrol yang detail, mirip dengan tool baris perintah curl tetapi di dalam Python. Ini sangat berguna untuk tugas-tugas web scraping yang membutuhkan kecepatan dan konfigurasi tingkat lanjut.
Fitur:
- Performa Tinggi: Memanfaatkan kecepatan
libcurluntuk permintaan HTTP yang cepat. - Keamanan Thread: Aman digunakan dalam aplikasi multi-threaded.
- Fitur Lanjutan: Mendukung proxy, konfigurasi SSL/TLS, header kustom, dan banyak lagi.
- Kontrol Low-Level: Memberikan kontrol detail atas proses permintaan dan respons.
Prasyarat
Sebelum Anda mulai menggunakan curl_cffi, pastikan Anda telah menginstal hal-hal berikut:
- Python 3.6 atau lebih tinggi
- libcurl yang terinstal di sistem Anda
- pip untuk menginstal paket Python
Pada sistem Ubuntu/Debian, Anda mungkin perlu menginstal header pengembangan libcurl:
bash
sudo apt-get install libcurl4-openssl-dev
Memulai dengan curl_cffi
Instalasi
Instal curl_cffi menggunakan pip:
bash
pip install curl_cffi
Contoh Dasar: Melakukan Permintaan GET
Berikut adalah contoh dasar cara menggunakan curl_cffi untuk melakukan permintaan GET:
python
from curl_cffi import requests
# Melakukan permintaan GET
response = requests.get('https://httpbin.org/get')
# Memeriksa kode status
print(f'Kode Status: {response.status_code}')
# Mencetak isi respons
print('Isi Respons:', response.text)
Contoh Web Scraping: Mengikis Kutipan dari Situs Web
Mari kita scraping halaman web untuk mengekstrak informasi. Kita akan menggunakan Quotes to Scrape untuk mendapatkan semua kutipan beserta penulisnya.
python
from curl_cffi import requests
from bs4 import BeautifulSoup
# URL untuk scraping
url = 'http://quotes.toscrape.com/'
# Melakukan permintaan GET
response = requests.get(url)
# Menganalisis konten HTML menggunakan BeautifulSoup
soup = BeautifulSoup(response.content, 'html.parser')
# Menemukan semua elemen kutipan
quotes = soup.find_all('div', class_='quote')
# Mengekstrak dan menampilkan kutipan dan penulis
for quote in quotes:
text = quote.find('span', class_='text').get_text()
author = quote.find('small', class_='author').get_text()
print(f'{text} — {author}')
Output:
“The world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.” — Albert Einstein
“It is our choices, Harry, that show what we truly are, far more than our abilities.” — J.K. Rowling
... (kutipan tambahan)
Menangani Captcha dengan CapSolver dan curl_cffi
Di bagian ini, kita akan mengeksplorasi bagaimana mengintegrasikan CapSolver dengan curl_cffi untuk melewati captcha. CapSolver adalah layanan eksternal yang membantu dalam menyelesaikan berbagai jenis captcha, termasuk ReCaptcha V2, yang umum digunakan di situs web.
Kita akan mendemonstrasikan penyelesaian ReCaptcha V2 menggunakan CapSolver dan kemudian scraping konten halaman yang memerlukan penyelesaian captcha terlebih dahulu.
Contoh: Menyelesaikan ReCaptcha V2 dengan CapSolver dan curl_cffi
python
import os
import capsolver
from curl_cffi import requests
# Pertimbangkan untuk menggunakan variabel lingkungan untuk informasi sensitif
capsolver.api_key = os.getenv("CAPSOLVER_API_KEY", "Your CapSolver API Key")
PAGE_URL = os.getenv("PAGE_URL", "https://example.com") # URL halaman dengan captcha
PAGE_KEY = os.getenv("PAGE_SITE_KEY", "SITE_KEY") # Site key untuk captcha
def solve_recaptcha_v2(url, site_key):
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyless",
"websiteURL": url,
"websiteKey": site_key,
"proxy": PROXY
})
return solution['solution']['gRecaptchaResponse']
def main():
print("Menyelesaikan reCaptcha V2...")
captcha_solution = solve_recaptcha_v2(PAGE_URL, PAGE_KEY)
print("Captcha Terselesaikan!")
if __name__ == "__main__":
main()
Catatan: Ganti PAGE_URL dengan URL halaman yang berisi captcha dan PAGE_SITE_KEY dengan site key captcha. Anda dapat menemukan site key di sumber HTML halaman, biasanya di dalam <div> yang berisi widget captcha.
Menangani Proxy dengan curl_cffi
Jika Anda perlu merutekan permintaan Anda melalui proxy, curl_cffi membuatnya mudah:
python
from curl_cffi import requests
# Menentukan pengaturan proxy
proxies = {
'http': 'http://username:password@proxyserver:port',
'https': 'https://username:password@proxyserver:port',
}
# Melakukan permintaan GET menggunakan proxy
response = requests.get('https://httpbin.org/ip', proxies=proxies)
# Mencetak isi respons
print('Isi Respons:', response.text)
Menangani Cookie dengan curl_cffi
Anda dapat mengelola cookie menggunakan CookieJar dari modul http.cookiejar Python:
python
from curl_cffi import requests
from http.cookiejar import CookieJar
# Membuat instance CookieJar
cookie_jar = CookieJar()
# Membuat sesi dengan cookie jar
session = requests.Session()
session.cookies = cookie_jar
# Melakukan permintaan GET
response = session.get('https://httpbin.org/cookies/set?name=value')
# Menampilkan cookie
for cookie in session.cookies:
print(f'{cookie.name}: {cookie.value}')
Penggunaan Lanjutan: Header Kustom dan Permintaan POST
Anda dapat mengirim header kustom dan melakukan permintaan POST dengan curl_cffi:
python
from curl_cffi import requests
# Menentukan header kustom
headers = {
'User-Agent': 'Mozilla/5.0 (compatible)',
'Accept-Language': 'en-US,en;q=0.5',
}
# Data untuk dikirim dalam permintaan POST
data = {
'username': 'testuser',
'password': 'testpass',
}
# Melakukan permintaan POST
response = requests.post('https://httpbin.org/post', headers=headers, data=data)
# Mencetak respons JSON
print('Respons JSON:', response.json())
Kode Bonus
Klaim Kode Bonus Anda untuk solusi captcha terbaik di CapSolver: scrape. Setelah menukarkannya, Anda akan mendapatkan bonus tambahan 5% setelah setiap pengisian ulang, tanpa batas.

Kesimpulan
Dengan curl_cffi, Anda dapat secara efisien melakukan tugas web scraping sambil memiliki kontrol detail atas permintaan HTTP Anda. Integrasinya dengan CapSolver memungkinkan Anda untuk melewati captcha seperti ReCaptcha V2, memungkinkan akses ke konten yang sulit untuk di-scrape.
Jangan ragu untuk mengembangkan contoh-contoh ini agar sesuai dengan kebutuhan scraping khusus Anda. Selalu ingat untuk menghormati persyaratan layanan situs web yang Anda scrape dan mematuhi pedoman hukum.
Selamat scraping!
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

Apa yang terbaik ekstensi untuk menyelesaikan CAPTCHA 2026?
Dalam dunia keamanan online yang terus berkembang, tantangan CAPTCHA telah menjadi hambatan umum bagi pengguna internet...

Emma Foster
12-Dec-2025

Lumiproxy: Proxy Premium untuk Pengambilan Data Web & Pengumpulan Data
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Lumiproxy dan layanan yang mereka tawarkan.

Emma Foster
12-Dec-2025

Genlogin: Mengubah Secara Revolusioner Pengalaman Otomatisasi Web Anda
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Genlogin dan layanan yang mereka tawarkan.

Nikolai Smirnov
12-Dec-2025

Proxys.io: Proxy individu untuk tugas apa pun
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Proxys.io dan layanan yang mereka tawarkan.

Nikolai Smirnov
12-Dec-2025

Tabproxy: Nilai yang baik proxy perumahan luar negeri
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu Tabproxy dan layanan yang mereka tawarkan.

Emma Foster
12-Dec-2025

IP2World Proxy Rumah: Solusi Proxy IP Global Terkemuka
Dalam artikel ini, kami akan menunjukkan kepada Anda apa itu IP2World dan layanan yang mereka tawarkan.

Ethan Collins
12-Dec-2025

