Beranda BlogPengikisan web Cara menggunakan cURL dengan proxy

Cara menggunakan cURL dengan proxy

oleh Kadek

cURL adalah alat baris perintah gratis untuk mengirim dan menerima data melalui jaringan menggunakan berbagai protokol. Ini digunakan untuk menjalankan permintaan HTTP, mengambil file melalui FTP, mengunduh file dari situs web dan menggunakan protokol SCP, SFTP dan LDAP.

cURL adalah alat yang ampuh, namun akan lebih hebat lagi bila digunakan dengan server proxy. Proxy menawarkan lebih banyak keamanan, anonimitas, dan fleksibilitas. Mereka sangat berharga bagi pengembang web, ilmuwan data, dan administrator jaringan.

Pada artikel ini, kita akan melihat secara mendalam penggunaan cURL dengan server proxy. Kami mencakup semuanya mulai dari menginstal cURL pada sistem operasi yang berbeda hingga menggunakan flag untuk permintaan tingkat lanjut. Kami juga akan membahas pengaturan rotasi proxy dan mengoptimalkan perintah Anda melalui variabel lingkungan, alias, dan file konfigurasi.

Instal cURL

Menginstal cURL di Windows dan Linux sedikit berbeda karena sistem operasi mengelola paket secara berbeda. Jadi mari kita lihat kedua opsi satu per satu.

Instal cURL di Windows

Untuk menginstal cURL di Windows, buka situs web resmi cURL dan unduh file *.exe yang sesuai dengan versi bit komputer Anda. Kemudian jalankan dan instal sebagai paket instalasi sederhana.

Atau Anda dapat menggunakan utilitas Chocolatey (Choco) untuk menginstal Curl secara otomatis. Jika Anda ingin menggunakan metode ini tetapi tidak memiliki Choco, buka PowerShell (jalankan sebagai administrator). Kemudian pastikan skrip diaktifkan di PowerShell:

Get-ExecutionPolicy

Jika perintah mengembalikan Dibatasi, eksekusi skrip tidak diperbolehkan. Untuk menginstal Chocolatey, Anda harus mengizinkan eksekusi skrip. Jalankan perintah berikut:

Set-ExecutionPolicy AllSigned

Konfirmasikan perintah dan tunggu hingga perubahan pengaturan selesai. Kemudian unduh dan instal Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

Anda kemudian dapat menggunakan perintah “choco install curl”:


PowerShell

Sekarang Anda dapat menggunakan cURL pada command prompt.

Instal cURL di Linux

Untuk Linux, instalasinya lebih ekstensif, namun tidak lebih rumit. Anda juga dapat mengunduh dan menginstal file *tar.gz dari situs resminya, tetapi kami akan melakukan sebaliknya dan menggunakan terminal.

Perlu juga dicatat bahwa sistem Linux yang berbeda menggunakan perintah yang berbeda untuk menginstal paket. Misalnya, jika Anda menggunakan Ubuntu atau Debian, Anda dapat menjalankan perintah ini:

sudo apt-get install curl

Dan untuk CentOS Anda dapat menginstal paketnya seperti ini:

sudo yum install curl

Setelah menjalankan perintah yang sesuai, cURL akan diinstal pada sistem Linux Anda dan akan tersedia di terminal.

Memverifikasi instalasi cURL

Jika Anda berhasil menginstal cURL, Anda dapat memverifikasinya dengan menjalankan perintah yang menanyakan versi cURL. Ini akan membantu memeriksa apakah sudah terpasang dengan benar.

curl --version

Jika Anda memiliki versi curl, Anda telah melakukan semuanya dengan benar. Jika Anda menerima pesan kesalahan, kembali ke langkah sebelumnya dan coba lagi.

Sintaks Curl dasar

Sebelum kita menggunakan proxy, mari kita lihat sintaks dasar CURL. Seperti yang telah disebutkan, ini memungkinkan Anda mengambil data dari berbagai sumber dan mengirim parameter, header, dan cookie.

DAPATKAN dan POST permintaan dengan cURL

Beberapa contoh penggunaan cURL yang paling sederhana adalah permintaan GET dan POST. Mari kita lihat permintaan GET sederhana:

curl -X GET https://www.example.com

Mari kita buat lebih rumit dan buat permintaan GET ke Google SERP API kita. Untuk melakukan ini, masuk ke Scrape-It.Cloud dan dapatkan kunci API Anda. Kami akan menentukannya di header permintaan.

curl -X GET "https://api.scrape-it.cloud/scrape/google?location=Austin%2CTexas%2CUnited+States&q=Coffee&domain=google.com&gl=us&hl=en&deviceType=desktop" -H "x-api-key: PUT-YOUR-API-KEY"

Kami juga menentukan lokasi, perangkat, bahasa, domain, negara, dan kata kunci dalam kueri ini. Saat kami menjalankan kueri, kami mendapatkan respons JSON yang berisi data dari Google SERP.

Sekarang mari kita lihat contoh permintaan POST. Permintaan dasar berisi parameter yang akan diteruskan di isi permintaan, misalnya:

curl -X POST -d "param1=value1&param2=value2" https://www.example.com

Mari kita ambil permasalahan yang lebih rumit sebagai contoh dunia nyata. Untuk mengakses milik kita Pengikisan web API dan beberapa API lainnya, kita perlu meneruskan parameter dalam format JSON di badan permintaan. Selain itu, karakter { dan } harus di-escape dalam isi data JSON pada baris perintah Windows. Mari dapatkan konten halaman Amazon menggunakan API scraping web kami.

curl -X POST -H "x-api-key: PUT-YOUR-API-KEY" -H "Content-Type: application/json" -d "{\"url\": \"https://www.amazon.com/Tablets\",\"proxy_type\": \"residential\",\"proxy_country\": \"US\"}" https://api.scrape-it.cloud/scrape

Hasilnya, kami menerima respons JSON dari API pengikisan web kami dengan konten halaman Amazon.

bendera cURL

Seperti yang mungkin Anda ketahui, kami telah menggunakan flag pada contoh sebelumnya. Kami menggunakan flag -X untuk menentukan metode HTTP, flag -H untuk menyetel header permintaan, dan flag -d untuk meneruskan data dalam permintaan. Ada juga flag lain di cURL yang bisa Anda gunakan, seperti:

  1. -o, --output. Menentukan file di mana hasil permintaan akan disimpan.
  2. -i, --include. Menambahkan header respons ke output.
  3. -v, --verbose. Beralih ke mode keluaran terperinci.
  4. -A, --user-agent. Menetapkan string agen pengguna.
  5. -L, --location. Mengikuti pengalihan secara otomatis.
  6. –cookie. Menetapkan cookie untuk permintaan tersebut.
  7. -x, --proxy. Menentukan alamat dan port server proxy.
  8. --proxy-user. Menetapkan nama pengguna untuk otentikasi server proksi.
  9. --proxy-ntlm. Menggunakan otentikasi NTLM untuk server proxy.
  10. --proxy-basic. Menggunakan otentikasi dasar untuk server proxy.

Secara total, cURL memiliki sekitar 300 flag berbeda. Untuk melihat semua flag dan opsi yang tersedia untuk cURL, Anda dapat menggunakan perintah berikut:

curl --help

Perintah ini menampilkan daftar semua flag dan deskripsinya sehingga Anda dapat melihat semua opsi yang tersedia dengan cURL.

Menentukan proxy di cURL

cURL memungkinkan Anda menentukan proxy untuk protokol HTTP/HTTPS dan SOCKS, yang dapat berguna untuk berbagai tujuan jaringan dan keamanan. Selain itu, Anda dapat melalui proxy yang berputar terhubung ke server.

Sebelumnya kita telah membahas proxy, termasuk sumber terbaik untuk opsi gratis dan berbayar. Jadi kali ini kita akan fokus pada jenis proxy yang tersedia, apa yang harus dipertimbangkan ketika memilih server proxy, dan di mana mendapatkan proxy.

Proksi HTTP/HTTPS

Untuk menggunakan proksi HTTP atau HTTPS dengan cURL, Anda dapat menggunakan tanda -x atau –proxy diikuti dengan alamat dan port proksi. Berikut adalah sintaks protokol proxy standar:

curl -x proxy_address:proxy_port URL

Misalnya, jika proksi HTTP Anda berjalan pada 192.168.1.1 pada port 8080 dan Anda ingin mengakses situs web:

curl -x 192.168.1.1:8080 https://example.com

Ini akan memungkinkan Anda terhubung ke example.com melalui proxy. Jika Anda ingin memeriksa apakah proxy berfungsi, Anda dapat terhubung ke https://httpbin.org/ip, yang akan mengembalikan alamat IP Anda sebagai respons:

curl -x 195.154.243.38:8080 https://httpbin.org/ip

Hasilnya, Anda akan mendapatkan sesuatu seperti ini:

{
    "origin": "195.154.243.38"
}

Sekarang mari kita lihat proksi SOCKS.

Proksi SOCKS

cURL juga mendukung proxy SOCKS, yang sering digunakan untuk skenario jaringan yang lebih kompleks. Untuk menggunakan proxy SOCKS, Anda dapat menggunakan flag –socks5 atau –socks4 diikuti dengan alamat dan port proxy:

curl --socks5 proxy_address:proxy_port URL

Misalnya, jika Anda memiliki proksi SOCKS5 di 192.168.1.2 pada port 1080:

curl --socks5 195.154.243.39:1080 https://httpbin.org/ip

Cara kerja cURL dengan proksi SOCKS mirip dengan cara kerjanya dengan proksi HTTP.

Menggunakan proxy berputar dengan cURL

Menggunakan proxy yang berputar dengan cURL memungkinkan Anda membuat permintaan HTTP melalui kumpulan server proxy yang berbeda, yang dapat mempermudah tugas seperti web scraping, pengumpulan data, atau memastikan anonimitas. Rotasi proxy membantu mendistribusikan permintaan Anda ke beberapa alamat IP, yang dapat mencegah larangan IP atau pembatasan tarif situs web.

Untuk menggunakan proxy berputar dengan cURL, Anda harus terlebih dahulu mendapatkan akses ke layanan proxy yang sesuai. Ada berbagai penyedia yang tersedia di internet yang menawarkan layanan proxy bergilir. Bergantung pada layanan proksi, Anda mungkin perlu mengautentikasi dengan kunci API atau nama pengguna dan kata sandi untuk mengakses kumpulan proksi yang berputar.

Daripada menentukan satu server proksi, Anda mendapatkan proksi dari kumpulan yang disediakan oleh layanan proksi bergilir Anda. Prosedurnya mungkin berbeda-beda, bergantung pada layanan yang digunakan. Anda harus membuat permintaan API untuk mendapatkan proxy atau menggunakan URL tertentu yang disediakan oleh layanan.

Setelah Anda memiliki proxy dari pool, Anda dapat menggunakannya seperti proxy lainnya dengan “cURL”. Sertakan tanda “-x” atau “–proxy” dengan alamat proxy.

Otentikasi proxy dengan cURL

Otentikasi proxy dengan cURL diperlukan saat Anda mengakses server proxy yang memerlukan otentikasi sebelum mengizinkan permintaan Anda melewatinya. Bergantung pada jenis server proksi yang Anda gunakan, Anda dapat mengautentikasi menggunakan metode autentikasi Basic, Digest, atau NTLM.

Kami sebelumnya menetapkan tanda untuk metode autentikasi ini. Jika Anda ingin membuat permintaan menggunakan metode autentikasi utama, gunakan contoh ini:

curl --proxy-user username:password -x proxy_address https://httpbin.org/ip

Dua metode autentikasi lainnya dilakukan secara identik dengan menambahkan flag –proxy-digest untuk autentikasi proksi intisari dan –proxy-ntlm untuk autentikasi proksi NTLM.

Opsi proksi tingkat lanjut

Jika Anda menggunakan proxy, Anda harus memberikan detail tambahan seperti header tambahan atau tidak menggunakan proxy sama sekali untuk koneksi langsung. Mari kita lihat cara kerjanya.

Menggunakan header dengan proxy adalah proses yang mudah, mirip dengan contoh sebelumnya. Namun, di sini Anda harus menentukan proxy dan kemudian menambahkan header.

curl -x proxy_address -H "Header-Name: Header-Value" https://httpbin.org/ip

Perintah cURL ini menetapkan header khusus bernama "Nama-Header" dengan nilai "Nilai-Header" dalam permintaan Anda ke server proksi.

Siapkan cURL untuk mengabaikan pengaturan proxy

Terkadang Anda mungkin perlu mengabaikan pengaturan proxy seluruh sistem. Dalam kasus seperti ini, Anda dapat menggunakan tanda –noproxy, diikuti dengan daftar domain yang dipisahkan koma untuk melewati proxy:

curl --noproxy httpbin.org https://httpbin.org/ip

Dalam contoh ini, cURL terhubung langsung ke httpbin.org tanpa melalui proxy yang dikonfigurasi.

Variabel lingkungan untuk proksi cURL

Anda dapat menggunakan variabel lingkungan untuk mengoptimalkan pekerjaan Anda dengan cURL. Hal ini memungkinkan Anda untuk kemudian membuat seperangkat aturan hanya dengan mereferensikan suatu variabel.

Mari kita atur variabel untuk proxy http dan https sehingga kita tidak perlu mengaturnya secara manual setiap saat. Jika Anda menggunakan Windows, Anda memerlukan perintah berikut:

set http_proxy="http://<username>:<password>@proxy.example.com:8080"
set https_proxy="http://<username>:<password>@proxy.example.com:8080"

Dan jika Anda menggunakan Linux, ini:

export http_proxy="http://<username>:<password>@proxy.example.com:8080"
export https_proxy="http://<username>:<password>@proxy.example.com:8080"

Atau Anda dapat menentukan daftar domain atau alamat IP yang tidak boleh diakses melalui proxy:

set no_proxy="localhost,127.0.0.1,httpbin.org"

Nanti Anda dapat dengan mudah mengakses variabel ini dan menggunakan parameternya dalam kueri Anda:

curl -x $https_proxy https://httpbin.org/ip
curl -x $no_proxy https://httpbin.org/ip

Dengan mengatur variabel lingkungan ini, Anda dapat mengoptimalkan konfigurasi proksi untuk semua permintaan cURL Anda. Dan jika Anda melakukan kesalahan dan ingin menimpa nilai suatu variabel, Anda cukup meresetnya. Selain itu, Anda masih dapat mengatur semua parameter secara manual.

Gunakan alias di cURL

Menggunakan alias di cURL bisa menjadi cara mudah untuk menyederhanakan perintah cURL yang kompleks atau umum digunakan dengan membuat pintasan atau pintasan khusus. Alias memungkinkan Anda menentukan pintasan yang lebih panjang ke perintah cURL, sehingga menghilangkan kebutuhan untuk mengingat atau mengetikkan baris perintah yang panjang.

Untuk membuat alias, Anda biasanya mendefinisikannya di file konfigurasi shell Anda (misalnya file .bashrc untuk Bash atau .zshrc untuk Zsh). Biasanya di Windows, file yang diperlukan terletak di folder C:\Users\nama pengguna. Anda dapat membuat yang baru jika Anda tidak menemukannya di sana.

Buka file konfigurasi di editor teks dan tambahkan definisi alias Anda. Misalnya saja untuk mempermudah penggunaan Curl dengan proxy, kita bisa menggunakan alias berikut:

alias mycurl="curl --proxy-user username:password -x proxy_address"

Atau gunakan variabel lingkungan yang dibuat sebelumnya:

alias myproxy='curl --proxy $https_proxy'

Setelah menambahkan alias ke file konfigurasi, Anda perlu memuat ulang shell Anda atau membuka yang baru agar alias dapat diterapkan. Kemudian Anda dapat menggunakan perintah yang baru saja Anda buat:

mycurl https://httpbin.org/ip

Seperti yang Anda lihat, menggunakan alias dapat membuat cURL lebih mudah digunakan.

Menggunakan file .curlrc

Anda dapat menggunakan file .curlrc untuk menyimpan opsi dan konfigurasi cURL default. Opsi dan konfigurasi ini secara otomatis dibaca dan diterapkan setiap kali Anda menjalankan perintah cURL. Ini dapat berguna saat mengatur opsi global, header, atau preferensi lainnya dan menyelamatkan Anda dari berulang kali menentukan opsi ini di setiap perintah cURL.

Anda dapat membuat file .curlrc di direktori home pengguna Anda atau di mana pun perintah cURL Anda berada. Biasanya, untuk membuat file .curlrc global untuk semua pengguna, letakkan di direktori home:

touch ~/.curlrc

File ini juga dapat dibuat dan diedit menggunakan editor teks. Di dalam file .curlrc, parameter konfigurasi cURL dapat ditambahkan baris demi baris. Misalnya, Anda dapat mengatur header default, agen pengguna, atau pengaturan proksi:

header = "Accept: application/json"
proxy = "http://proxy.example.com:8080"

Jika Anda menggunakan cURL, Anda tidak perlu menentukan parameter ini. Mereka digunakan sebagai default untuk setiap permintaan cURL. Jalankan saja perintah:

curl https://httpbin.org/ip

Semua pengaturan diambil dari file konfigurasi cURL dan permintaan dijalankan melalui proxy.

Cara Melewati Kesalahan Sertifikat SSL Saat Menggunakan Curl Proxy

Kesalahan sertifikat SSL mungkin terjadi saat menggunakan proxy. Untuk mengatasi kesalahan ini dan membuat koneksi tidak aman, Anda dapat menggunakan opsi –insecure atau -k dengan cURL:

curl --proxy http://proxy.example.com:8080 --insecure https://httpbin.org/ip

Namun, opsi ini tidak disarankan untuk lingkungan produksi karena gagal dalam validasi sertifikat SSL dan mengurangi tingkat perlindungan.

Kesimpulan dan temuan

cURL adalah alat baris perintah canggih yang memungkinkan Anda bekerja dengan server proxy dan membuat permintaan HTTP. Hal ini menjadikannya alat yang sangat diperlukan untuk web scraping, anonimitas online, dan melewati blokir.

Alat ini memungkinkan Anda untuk menyesuaikan permintaan, autentikasi, dan banyak lagi, sehingga sangat diperlukan untuk bekerja dengan sumber daya jaringan dan layanan web. Selain itu, dalam artikel hari ini kami melihat cara untuk mengoptimalkan penggunaan proxy dengan cURL dan membuat variabel lingkungan, alias, dan file konfigurasi.

Pos terkait

Tinggalkan Komentar