Php curl

20
Web Scraping with PHP/CURL Deddy Setyadi

Transcript of Php curl

Page 1: Php curl

Web Scraping with PHP/CURL

Deddy Setyadi

Page 2: Php curl

Webbots

file(‘http://www.google.com’)

Page 3: Php curl

Seiring berkembangnya teknologi, fungsi pada php seperti file(),

fopen(), fgets(), tidak mampu menangani form submission,

authentication, redirection, dsb. Kemudian, dikembangkanlah sebuah

library yang dinamakan cURL.

Page 4: Php curl

cURL Library

cURL library merupakan alat untuk melakukan transfer file dari

webserver ke remote komputer. Library yang mendukung

berbagai macam internet protokol ini mudah untuk dikonfigurasi,

dan melayani berbagai macam interaksi antara client-server.

Page 5: Php curl

libcurl (Library untuk curl)

cURL Library

curl(command line)

Page 6: Php curl

PHP/CURL

Modul yang ada pada PHP, sehingga PHP bisa

menggunakan fungsi-fungsi yang telah

disediakan cURL.

Page 7: Php curl

Mengoperasikan PHP/CURL

Inisiasi Sesi

Pengaturan

Eksekusi

Menutup Sesi

Page 8: Php curl

Inisiasi Sesi PHP/CURL

Sebelum menggunakan

PHP/CURL, inisiasi dulu dengan

curl_init(), atau

curl_multi_init() jika URL lebih

dari satu, yang kemudian

disimpan dalam sebuah variabel.

Page 9: Php curl

Pengaturan PHP/CURL

Fungsi untuk mengkonfigurasi

PHP/CURL adalah curl_setopt(), atau

curl_setopt_array(), yang

digunakan untuk mengutak-atik sesi

cURL dengan berbagai opsi yang

telah disediakan libcurl.

Page 10: Php curl

Boolean value

• CURLOPT_CONNECT_ONLY – Tidak ada data yang ditransfer

• CURLOPT_FILETIME – Dapat mengetahui tanggal modifikasi

dokumen

• CURLOPT_HEADER – Header juga ikut ditransfer

• CURLOPT_POST – Untuk melakukan method POST

• CURLOPT_RETURNTRANSFER – Mengembalikan transfer sebagai

string

• CURLOPT_SSL_VERIFYPEER – Jika target memiliki enkripsi SSL &

HTTPS

• CURLOPT_FOLLOWLOCATION – Mengikuti redirect dari URL yang

dituju.

Page 11: Php curl

Integer value

• CURLOPT_CONNECTTIMEOUT – Waktu tunggu saat menyambungkan

ke URL.

• CURLOPT_RESUME_FROM – untuk melanjutkan sebuah transfer.

• CURLOPT_TIMEOUT – Batasan waktu untuk eksekusi cURL.

• CURLOPT_MAXREDIRS – Batasan maksimal redirect yang

diperbolehkan.

Page 12: Php curl

String value

• CURLOPT_URL – URL yang akan diambil

• CURLOPT_USERAGENT – Konten “ User-Agent: ” header dalam HTTP

request.

• CURLOPT_POSTFIELDS – data untuk setiap field dalam method POST

• CURLOPT_COOKIEJAR – File untuk menyimpan cookie saat sesi sudah

ditutup.

• CURLOPT_REFERER - Konten “ Referer: ” header dalam HTTP request.

Page 13: Php curl

Eksekusi PHP/CURL

Dengan menggunakan curl_exec(),

maka PHP/CURL akan mengeksekusi

seluruh opsi yang telah diatur dalam

curl_setopt().

Page 14: Php curl

Informasi dari Sesi PHP/CURL

Setiap sebuah curl_exec() dipanggil,

maka informasi pada saat sesi

dieksekusi juga tersedia. Untuk

mengetahui informasi tersebut,

gunakan fungsi curl_getinfo().

Page 15: Php curl

Hasil dari curl_getinfo()

Page 16: Php curl

Menampilkan error dari Sesi PHP/CURL

Untuk menampilkan error, maka dapat memanggil

fungsi curl_error(). Fungsi ini akan menampilkan

pesan error untuk operasi PHP/CURL yang terakhir

kali dijalankan.

Untuk lebih jelas mengenai pesan error yang

dihasilkan cURL, bisa membuka

http://curl.haxx.se/libcurl/c/libcurl-errors.html

Page 17: Php curl

Menutup Sesi PHP/CURL

Ketika sudah selesai menggunakan

PHP/CURL, maka sesegera mungkin

untuk menutup sesi cURL ini dengan

memanggil fungsi curl_close().

Page 18: Php curl

Demo

Page 19: Php curl

Referensi

• http://php.net/manual/en/ref.curl.php

• http://etelej.github.io/how-to-use-php-curl-basics/

• http://www.slideshare.net/teenmaxinfo/curl-php-bookv32

• Schrenk, Michael. 2012. Webbots, spiders, and screen scrapers : a guide to

developing internet agents with PHP/CURL. No Starch Press, Inc. Diakses 10

januari 2015, dari libgen.info.

• Ward, Jacob. 2013. Instant PHP Web Scraping. Packt Publishing Ltd. Diakses 15

Januari 2015, dari libgen.info.

Page 20: Php curl

Udah.