Kegunaan cookie pada setiap website sangatlah penting dalam menyimpan sesi pengguna untuk jangka lama. Sementara itu cookie juga sangat dibutuhkan dalam hal scrapping pada website. Contohnya dalam hal pengambilan data yang memerlukan proses autentikasi.
Mengambil data cookie pada dasarnya bisa dilakukan dengan mudah melalui browser, tepatnya menggunakan fitur inspect element. Akan tetapi untuk proses otomatis, justru menggunakan cURL dan PHP jauh lebih effisien dan tidak membutuhkan waktu lama.
Walau melakukan scrapping rata-rata lebih bagus dan cepat menggunakan Python, tapi jika nantinya data yang diambil langsung dipakai pada website, tentunya menggunakan cURL dan PHP adalah hal yang sempurna.
Mengambil Data Cookie pada Website Menggunakan cURL dan PHP
Perintah cURL disini bisa digunakan untuk memuat konten pada suatu website dan bisa pula dipakai langsung untuk mengambil cookie dalam bentuk file. Tapi adapula cara alternatif apabila yang kamu inginkan adalah mengambil cookie agar menjadi string tanpa memakai file lagi.
Menggunakan COOKIEFILE pada cURL
Cara pertama adalah memakai COOKIEFILE. Itu merupakan atribut pada cURL yang berfungsi untuk menyimpan file cookie yang didapat menjadi sebuah file TXT. Cara pemanggilannya seperti ini:
<?php $cookie = "cookie.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://situstujuan"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); echo curl_exec($ch); curl_close($ch); ?>
Ketika itu di muat, secara otomatis akan membuat file cookie.txt yang berisi data cookie yang didapat pada website tersebut. File itu berada pada direktori yang sama.
Sedangkan cara pemanggilannya, bisa menggunakan COOKIEJAR
, berikut ini contohnya:
<?php $cookie = "cookie.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://situstujuan"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie); echo curl_exec($ch); curl_close($ch); ?>
Mengambil Cookie dengan preg_match_all()
Sedangkan jika yang kamu butuhkan adalah mengambil data cookie sebagai string, maka bisa menggunakan perintah preg_match_all()
, dan berikut ini contohnya:
<?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://situstujuan"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); $hasil = curl_exec($ch); preg_match_all('/^Set-Cookie:\s*([^;]*)/mi', $hasil, $datacookie); echo $datacookie[1][0]; curl_close($ch); ?>
Dari contoh diatas, cookie diambil dari informasi header yang didapat pada cURL ke dalam string $datacookie
berbentuk Array. Silakan gunakan perintah print_r
atau var_dump
terhadap string tersebut untuk mengetahui keseluruhan data pada array.
Baca juga: Ekstensi Chrome untuk Mengubah Value Cookie pada Website
Dua cara diatas bisa kamu pilih mana saja sesuai kebutuhan, jika saya sendiri lebih sering memakai cara kedua karena menurut saya lebih praktis karena tidak perlu membuat file lagi hanya untuk menyimpan cookie. Dan apabila ada yang ingin ditanyakan tentang tutorial diatas, jangan ragu untuk menuliskannya pada kolom komentar.
Semoga bermanfaat dan Selamat mencoba