Panduan Pemula - Cara Menggunakan CloudScraper Proxy Secara Efektif

Komentar: 0

CloudScraper adalah modul untuk mengotomatiskan permintaan HTTP dan berinteraksi dengan sumber daya web yang menerapkan validasi lalu lintas tambahan, seperti Cloudflare. Proksi CloudScraper membantu mengelola koneksi, mengatur parameter jaringan untuk permintaan, dan menjaga akses tetap stabil di situs yang memeriksa IP, header, dan perilaku klien.

Cara Kerja Perpustakaan dan Mengapa Proksi Membantu di CloudScraper

CloudScraper diimplementasikan dalam Python dan dibangun di atas pustaka permintaan. Tidak seperti klien HTTP dasar, modul ini dapat secara otomatis menangani halaman tantangan dengan pos pemeriksaan JavaScript dengan meniru perilaku seperti peramban. Modul ini menambahkan header yang diperlukan, mengelola cookie, mengikuti pengalihan, dan dapat mengatasi mekanisme perlindungan umum - asalkan tidak melibatkan CAPTCHA.

Dalam praktiknya, para pengembang sering menggunakannya sebagai API web scraping untuk merampingkan proses ekstraksi data sambil meminimalkan larangan IP.

Menggunakan proxy CloudScraper memungkinkan Anda untuk:

  • memutar alamat IP sumber;
  • mensimulasikan koneksi dari berbagai wilayah;
  • mempertahankan volume panggilan yang tinggi dengan andal;
  • mengautentikasi proxy untuk sesi yang aman dan anonim.

Perpustakaan ini berjalan tanpa meluncurkan peramban penuh dan, dalam beberapa kasus, dapat menggantikan alat tanpa kepala seperti Puppeteer atau Playwright.

Bagaimana CloudScraper Berinteraksi dengan Perlindungan Cloudflare

Cloudflare menggunakan beberapa lapisan proteksi terhadap lalu lintas otomatis, yang secara kolektif disebut sebagai proteksi anti bot. Ini termasuk tantangan JavaScript, pengalihan HTTP, pemeriksaan header, token cookie, dan batasan berbasis IP. CloudScraper mendeteksi mekanisme validasi dan menerapkan strategi penanganan yang tepat.

  • Tantangan JavaScript. Modul ini menginterpretasikan JS yang disematkan dan mengemulasi peramban, menunggu verifikasi selesai.
  • Pengalihan (301/302). Ditangani secara otomatis pada tingkat sesi HTTP; tidak diperlukan tindakan tambahan.
  • Header (User-Agent dan lainnya). Ditetapkan oleh perpustakaan secara default, tetapi dapat diganti jika diperlukan.
  • Token cookie. Dibuat setelah melewati tantangan dan disimpan dalam sesi untuk percobaan berikutnya.

Menggunakan CloudScraper di Python

Ini adalah lintas platform, diperbarui secara teratur, dan kompatibel dengan Windows, Linux, dan macOS. Ia bekerja di lingkungan virtual dan pada server tanpa antarmuka grafis. Ini juga memungkinkan pengembang untuk dengan cepat mengintegrasikan proksi untuk kontrol akses dan keandalan yang lebih baik.

Instalasi

Untuk memulai, Anda harus menginstal Python versi 3.6 atau lebih tinggi. Menggunakan CloudScraper dalam Python sangat mudah karena modul ini bisa dihubungkan dengan satu perintah dan langsung siap untuk bekerja dalam lingkungan apa pun.

Alat ini diinstal melalui manajer paket Python standar - pip, yang memungkinkan pengunduhan dan pembaruan pustaka pihak ketiga dari repositori resmi PyPI. Jika Anda menggunakan lingkungan virtual, pastikan lingkungan tersebut diaktifkan sebelum instalasi.

pip install cloudscraper

Selama instalasi, pustaka secara otomatis menarik dependensi utama: request, pyparsing, dan request-toolbelt. Jika perlu, mereka dapat diperbarui secara manual:

pip install --upgrade requests pyparsing requests-toolbelt

Untuk memverifikasi bahwa instalasi telah selesai dengan benar, Anda dapat menjalankan skrip pengujian berikut ini:

import cloudscraper

scraper = cloudscraper.create_scraper()
response = scraper.get("https://www.cloudflare.com")
print(response.status_code)

Jika skrip mengembalikan kode status 200, 301, atau 302, koneksi berhasil dan respons diterima dari server.

Contoh Permintaan ke Halaman yang Diproteksi

Contoh di bawah ini menunjukkan cara menggunakan modul untuk mengirim upaya ke halaman yang dilindungi, dengan menentukan parameter lingkungan yang sesuai dengan browser Chrome pada Windows.

Hal ini diperlukan untuk pembuatan header yang benar dan untuk meningkatkan peluang keberhasilan pembuatan sesi:

import cloudscraper

url = "https://example.com/protected"

scraper = cloudscraper.create_scraper(
    browser={
        'browser': 'chrome',
        'platform': 'windows',
        'mobile': False
    }
)

response = scraper.get(url)

if response.status_code == 200:
    print("Access granted.")
    print(response.text[:500])
elif response.status_code == 403:
    print("Request denied. Check proxy or headers.")
else:
    print(f"Response code: {response.status_code}")

Berdasarkan parameter ini, modul mengganti User-Agent dan tajuk utama lainnya yang sesuai, yang memungkinkan tantangan ditangani dengan benar dan konten halaman diambil.

Integrasi Proksi

Jika server proxy CloudScraper digunakan, server ini menerima parameternya dalam bentuk standar - sebagai kamus proxy, mirip dengan format yang digunakan oleh pustaka permintaan. Hal ini memungkinkan pengembang untuk menggunakan proxy yang sama untuk beberapa permintaan, memastikan penanganan IP yang konsisten dan stabilitas sesi.

Contoh cara mengoper parameter server proxy saat mengeksekusi permintaan:

proxies = {
'http': 'http://user:pass@proxy.server:port',
'https': 'http://user:pass@proxy.server:port'
}

scraper = cloudscraper.create_scraper()
response = scraper.get(url, proxies=proxies)

Server proxy CloudScraper direkomendasikan ketika bekerja dengan sumber daya yang membatasi akses berdasarkan IP, wilayah, atau frekuensi panggilan. Server proxy ini membantu mendistribusikan beban, mensimulasikan lalu lintas dari wilayah yang diinginkan, dan meningkatkan stabilitas akses.

Captcha CloudScraper

Meskipun ada mekanisme canggih untuk berinteraksi dengan proteksi, CloudScraper tidak secara otomatis menangani captcha. Hal ini berlaku untuk hCaptcha interaktif dan reCAPTCHA grafis. Perpustakaan tidak mengenali kontennya, sehingga tidak dapat menghasilkan respons terhadap bentuk-bentuk seperti itu.

Saat mengambil halaman dengan captcha, modul mengembalikan HTML yang berisi elemen yang sesuai, misalnya:

<iframe src="https://www.google.com/recaptcha/api2/anchor?...">

Dalam hal ini, ada dua pendekatan solusi yang memungkinkan:

  • Integrasi dengan layanan anti-captcha (seperti 2Captcha, Capmonster, Anti-Captcha, dll.). Ini memungkinkan Anda untuk mengirim sitekey dan pageurl, dan sebagai gantinya, Anda menerima token yang siap untuk dikirimkan.
    captcha_data = {
        'method': 'userrecaptcha',
        'googlekey': 'SITE_KEY',
        'pageurl': 'https://example.com',
        'key': 'API_KEY_ANTICAPTCHA'
    }
  • Menggunakan browser tanpa kepala (misalnya, Puppeteer atau Playwright) dengan plugin yang mendukung pemecahan captcha otomatis. Hal ini memungkinkan untuk meniru perilaku pengguna sepenuhnya.

Jika captcha muncul bahkan pada tingkat permintaan yang moderat, maka masuk akal:

  • meningkatkan penundaan di antara percobaan;
  • mengubah sidik jari lingkungan;
  • pertimbangkan kembali strategi - misalnya, beralih ke otomatisasi peramban.

Kualitas alamat IP merupakan faktor penting ketika bekerja dengan sumber daya yang dilindungi. Proksi yang andal untuk CloudScraper (perumahan, seluler, ISP, atau pusat data) membantu mengurangi kemungkinan captcha dan memastikan kinerja sesi yang stabil. Untuk mengetahui perbedaan antara berbagai jenis proxy dan cara memilih solusi terbaik untuk tugas tertentu, baca artikel ini.

Alternatif CloudScraper yang Perlu Dipertimbangkan

Modul ini menyelesaikan banyak tugas yang terkait dengan melewati Cloudflare, tetapi dalam beberapa kasus, pendekatan yang berbeda mungkin diperlukan - lebih khusus atau disesuaikan dengan kondisi perlindungan tertentu.

Berikut ini adalah beberapa alternatif yang umum:

  • Permintaan dengan cookie izin yang diperoleh secara manual. Digunakan ketika satu panggilan sudah cukup. Memerlukan ekstraksi token manual dari browser dan pembaruan berikutnya ketika sesi berubah.
  • Dalang. Peramban tanpa kepala berdasarkan Node.js yang mengemulasi perilaku pengguna yang sebenarnya. Cocok untuk tugas-tugas yang membutuhkan pemrosesan JavaScript, captcha, dan penanganan struktur DOM yang tepat. Memakan lebih banyak sumber daya tetapi lebih dapat diandalkan.
  • Playwright. Alternatif yang lebih fleksibel untuk CloudScraper dengan dukungan untuk beberapa mesin peramban (Chromium, Firefox, WebKit). Berskala dengan baik dan berhasil menangani sebagian besar mekanisme verifikasi.

Perbandingan solusi:

Fitur / Alat CloudScraper Requests+cookies Puppeteer Playwright
Kompleksitas implementasi Rendah Sedang Tinggi Tinggi
Kecepatan kinerja Tinggi Tinggi Sedang Sedang
Resistensi terhadap pemeriksaan Sedang Rendah Tinggi Maksimum
Integrasi layanan captcha Ya (melalui API) Tidak. Ya (melalui plugin/API) Ya (melalui plugin/API)
Eksekusi JavaScript Sebagian Tidak. Yes Yes
Konsumsi sumber daya Rendah Rendah Tinggi Tinggi

Kesalahan Umum dan Perbaikan Saat Menggunakan CloudScraper Proxy

Bahkan dengan pengaturan yang benar, CloudScraper dapat menghadapi masalah teknis yang mudah didiagnosis dan diselesaikan setelah Anda memahami penyebabnya.

SSL: SERTIFIKAT_VERIFIKASI_GAGAL

Saat memproses permintaan, sebuah pesan mungkin muncul yang mengindikasikan adanya masalah pada sertifikat SSL. Hal ini menunjukkan kegagalan dalam verifikasi - paling sering disebabkan oleh sertifikat yang kedaluwarsa atau tanggal sistem yang salah.

Bagaimana cara memperbaikinya:

  • Perbarui paket certifi dengan perintah pip install --upgrade certifi.
  • Periksa dan, jika perlu, perbaiki tanggal dan waktu sistem pada perangkat.
  • Nonaktifkan verifikasi SSL untuk sementara waktu (hanya untuk debugging).
scraper.get(url, verify=False)

Kode ini menunjukkan cara melewati kesalahan verifikasi SSL untuk sementara waktu dengan menonaktifkan validasi sertifikat. Ini berguna untuk diagnostik tetapi tidak aman untuk penggunaan permanen.

403 Dilarang

Server menolak panggilan dengan kesalahan 403, meskipun URL dapat diakses di browser. Hal ini terjadi ketika proteksi mengidentifikasi upaya tersebut sebagai upaya otomatis.

Cara memperbaiki masalah:

  1. Tetapkan Agen Pengguna saat ini yang identik dengan header browser modern.
  2. Menambahkan header yang hilang - Pengarah, Terima-Bahasa, Terima-Pengkodean.
mport cloudscraper

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.5735.199 Safari/537.36',
    'Referer': 'https://example.com',
    'Accept-Language': 'en-US,en;q=0.9',
    'Accept-Encoding': 'gzip, deflate, br'
}

scraper = cloudscraper.create_scraper()
response = scraper.get("https://example.com", headers=headers)

print(response.status_code)

Catatan: Jika User-Agent diatur secara manual melalui header, parameter browser saat membuat sesi tidak diperlukan - parameter tersebut akan ditimpa.

Anda juga harus memeriksa proxy yang digunakan dan, jika perlu, ubah IP atau pilih server perantara dari wilayah lain.

Tantangan yang tidak didukung

Modul tidak dapat memproses halaman tantangan yang dikembalikan, menampilkan HTML kosong atau pesan kesalahan. Alasan - jenis perlindungan yang tidak didukung oleh pustaka (misalnya, hCaptcha atau Pintu Putar).

Cara memperbaiki masalah:

  • Pastikan modul diperbarui ke versi terbaru.
  • Pilih sumber daya alternatif dengan perlindungan yang tidak terlalu ketat.

Jika hal ini tidak membantu, disarankan untuk beralih ke browser tanpa kepala.

Redirect Loop

Saat mengirim panggilan, pengalihan berulang kali di antara halaman diamati. Konten tidak dimuat, dan baris permintaan berubah beberapa kali tanpa mencapai halaman target.

Dalam kasus ini, pengguna akan diarahkan kembali ke halaman verifikasi karena melewati proteksi belum selesai. Hal ini dapat terjadi jika cookie tidak disimpan di antara percobaan atau sesi hilang selama navigasi.

Langkah-langkah yang harus diselesaikan:

  1. Gunakan objek Sesi modul untuk menyimpan cookie di antara percobaan.
    import cloudscraper
    
    scraper = cloudscraper.create_scraper()
    
    response1 = scraper.get("https://example.com/start")
    
    response2 = scraper.get("https://example.com/continue")
    
    print(response2.status_code)
  2. Tambahkan sedikit penundaan di antara percobaan menggunakan time.sleep.
    import time
    import cloudscraper
    
    scraper = cloudscraper.create_scraper()
    response1 = scraper.get("https://example.com/start")
    
    time.sleep(2)
    
    response2 = scraper.get("https://example.com/continue")

Menambahkan penundaan membantu menghindari situasi di mana server mengklasifikasikan trafik sebagai otomatis karena frekuensi panggilan yang terlalu tinggi. Hal ini sangat penting ketika menggunakan proxy CloudScraper: penundaan meningkatkan stabilitas sesi dan mengurangi kemungkinan memicu filter.

Perilaku Proxy CloudScraper yang Tidak Stabil

Beberapa upaya berhasil sementara yang lain gagal dengan kesalahan koneksi atau waktu habis. Hal ini sering kali menunjukkan IP berkualitas rendah.

Mitigasi:

  • Lebih suka perumahan, seluler atau proxy ISP.
  • Kecualikan IP gratis/publik dari pool Anda.
  • Aktifkan pencatatan dan terapkan rotasi proxy otomatis.

Pencatatan membantu melacak operasi modul ketika terhubung melalui server proxy (permintaan, kode status, jenis kesalahan). Dalam Python, hal ini dilakukan dengan modul pencatatan standar, misalnya:

import logging
import cloudscraper

# basic file logging
logging.basicConfig(
    filename="scraper.log",
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s"
)

scraper = cloudscraper.create_scraper()

try:
    response = scraper.get("https://example.com")
    logging.info(f"Request successful, status: {response.status_code}")
except Exception as e:
    logging.error(f"Request error: {e}")

Ini menghasilkan log kesalahan dan upaya yang berhasil yang memungkinkan Anda menentukan proksi CloudScraper mana yang gagal dan kapan.

Jika proxy mulai mengembalikan 403, waktu habis, kesalahan SSL, dll., Anda harus menerapkan Rotasi IP. Gunakan kumpulan proxy dan kembali ke server berikutnya yang tersedia jika terjadi kegagalan, misalnya:

import cloudscraper

proxies_list = [
    "http://user:pass@proxy1:port",
    "http://user:pass@proxy2:port",
    "http://user:pass@proxy3:port"
]

url = "https://example.com"
scraper = cloudscraper.create_scraper()

for proxy in proxies_list:
    try:
        response = scraper.get(url, proxies={"http": proxy, "https": proxy}, timeout=10)
        if response.status_code == 200:
            print("Success via:", proxy)
            break
    except Exception as e:
        print("Error on", proxy, "-", e)

Hasilnya, permintaan dieksekusi melalui proxy pertama yang tersedia dari pool, yang membantu menghindari alamat yang tidak berfungsi.

Kesimpulan

Menggunakan CloudScraper Proxy membantu mengotomatiskan panggilan ke situs-situs dengan perlindungan tingkat koneksi. Kesalahan biasanya berasal dari proksi yang tidak stabil, tingkat percobaan yang tinggi, atau CAPTCHA. Solusi praktis termasuk menggunakan IP yang andal, mengadaptasi header, dan mengelola frekuensi permintaan.

PERTANYAAN YANG SERING DIAJUKAN

Dapatkah CloudScraper digunakan dengan browser anti-deteksi atau emulasi sidik jari?

Tidak. CloudScraper beroperasi pada tingkat permintaan HTTP dan tidak mereproduksi perilaku peramban secara penuh. Ia dapat menutupi dirinya dengan header, tetapi tidak dapat meniru perilaku pengguna atau sidik jari peramban. Untuk pemeriksaan berbasis perilaku, gunakan alat tanpa kepala seperti Playwright atau Puppeteer.

Dapatkah saya menggunakan server proxy CloudScraper dalam pengaturan multithreaded?

Ya. Mengisolasi sesi, menggunakan kumpulan proxy, dan menangani pengecualian dengan benar. Buat sesi khusus per utas. Pada kesalahan koneksi (batas waktu, ProxyError, 403 Terlarang, 429 Terlalu Banyak Permintaan), putar proxy.

Apakah perpustakaan dapat diandalkan untuk skenario produksi?

CloudScraper sangat cocok untuk proyek-proyek kecil hingga menengah yang membutuhkan integrasi yang cepat. Untuk sistem yang sangat penting dan memiliki beban tinggi, pertimbangkan solusi yang lebih terukur (misalnya, Playwright) atau tumpukan berbasis peramban khusus.

Komentar:

0 komentar