Cara menggunakan python requests path traversal

Requests adalah modul Python yang bisa kamu gunakan untuk mengirim berbagai request HTTP. Requests adalah library yang mudah digunakan dengan banyak fitur mulai dari melempar parameter dalam URL sampai mengirim header khusus dan verifikasi SSL. Dalam tutorial ini, kamu akan belajar bagaimana menggunakan library ini untuk mengirim request HTTP sederhana dalam Python.

Kamu bisa menggunakan Requests dengan Python versi 2.6-2.7 dan 3.3-3.6. Sebelum melanjutkan lebih jauh, kamu perlu tahu bahwa Requests adalah modul eksternal, jadi kamu harus menginstallnya terlebih dahulu sebelum mencoba contoh pada tutorial ini. Kamu bisa menginstallnya dengan menjalankan perintah berikut di terminal:

1pip install requests

Setelah kamu menginstal modul tersebut, kamu bisa memastikan instalasi sukses dengan mengimportnya dengan menggunakan perintah ini:

1import requests

Jika instalasi berhasil, kamu tidak akan melihat pesan error apapun.

Membuat Request GET

Mengirim request HTTP menggunakan Requests sangat mudah. Kamu mulai dengan mengimpor modul dan membuat request. Berikut ini adalah contohnya:

1import requests 2req = requests.get('//tutsplus.com/')

Semua informasi tentang request kita sekarang disimpan dalam objek Resonse yang bernama pip install requests 68. Contohnya, kamu bisa mendapat encoding dari halaman web menggunakan proprti pip install requests 69. Kamu juga bisa mendapatkan kode status dari request menggunakan properti pip install requests 70.

1req.encoding # returns 'utf-8' 2pip install requests 1

Kamu bisa mengakses cookie yang dikirim balik oleh server menggunakan pip install requests 71. Begitu pula, kamu bisa mendapat header respon menggunakan pip install requests 72. Properti pip install requests 72 mengembalikan kamus case incensitive dari respon header. Ini berarti pip install requests 74, pip install requests 75 dan pip install requests 76 semuanya akan mengembalikan nilai dari pip install requests 77 response header.

Kamu bisa memeriksa apakah respon berupa HTTP redirect yang bisa saja sudah diproses secara otomatis menggunakan properti pip install requests 78. Properti itu akan mengembalikan pip install requests 79 atau pip install requests 80 berdasarkan respon tersebut. Kamu juga bisa mendapat waktu yang sudah berjalan antara mengirim request dan mendapatkan respon menggunakan properti pip install requests 81.

URL yang kamu kirim ke fungsi pip install requests 82 mungkin berbeda dengan URL akhir dari respon karena berbagai alasan, termasuk redirect. Untuk melihat URL respon terakhir, kamu bisa menggunakan properti pip install requests 83.

1import requests 2pip install requests 5pip install requests 6pip install requests 7pip install requests 8pip install requests 910111213141516171819import requests 0import requests 1import requests 2import requests 3import requests 4

Mendapatkan semua informasi tentang webpage yang kamu akses memang bagus, tapi kemungkinan besar kamu ingin mengakses konten sebenarnya. Jika konten yang kamu akses berupa teks, kamu bisa menggunakan properti pip install requests 84 untuk mengaksesnya. Konten akan diurai sebagai unicode. Kamu bisa mengetahui jenis encoding untuk mendecode teks menggunakan properti pip install requests 69.

Dalam kasus respon yang bukan teks, kamu bisa mengaksesnya dalam format binary menggunakan pip install requests 86. Modul akan secara otomatis mendecode pip install requests 87 dan melakukan pip install requests 88 terhadap encoding selama transfer. Hal ini akan berguna ketika kamu berurusan dengan file media. Begitu pula kamu bisa mengakses konten json-encoded dalam respon, jika memang ada, menggunakan pip install requests 89.

Kamu juga bisa menadapat respon mentah dari server menggunakan pip install requests 90. Ingat bahwa kamu perlu melempar pip install requests 91 pada request untuk mendapat respon mentah.

Sebagian file yang kamu unduh dari internet menggunakan modul Requests mungkin berukuran besar. Dalam hal itu, tidak bijak untuk membuka keseluruhan respon atau file dalam memori sekaligus. Kamu bisa mendownload file dalam potongan-potongan menggunakan fungsi pip install requests 92.

Fungsi ini mengiterasi data respon sejumlah pip install requests 93 byte. Jika pada request diatur pip install requests 91, fungsi ini akan menghindari membaca keseluruhan file ke memori sekaligus untuk respon yang besar. Parameter pip install requests 93 bisa berupa bilangan bulat atau pip install requests 96. Jika diatur sebagai bilangan bulat, pip install requests 93 akan menentukan jumlah byte yang akan dibaca ke memori.

Ketika pip install requests 93 diatur sebagai pip install requests 96 dan 100 diatur ke pip install requests 79, data akan dibaca saat sampai berapapun ukuran potongan yang diterima. Saat pip install requests 93 diatur menjadi pip install requests 96 dan 100 diatur pip install requests 80, semua data akan dikembalikan sebagai satu potongan.

Mari unduh gambar hutan di Pixabay menggunakan modul Requests. Ini adalah gambarnya:

Ini adalah kode yang kamu butuhkan:

1import requests 2import requests 8pip install requests 610pip install requests 712pip install requests 91411161318

106 adalah URL gambar sebenarnya; kamu bisa mengisinya dengan URL gambar apa saja untuk mengunduh gambar tersebut. Gambar ini berukuran 185kb, dan kamu mengatur pip install requests 93 menjadi 50.000 byte. Ini berarti pesan "Received a Chunk" akan dicetak empat kali di terminal. Ukuran potongan terakhir akan hanya 39.350 byte karena sisa dari tiga iterasi pertama adalah 39.350 byte.

Request juga memperbolehkan kamu melempar parameter dalam URL. Ini berguna ketika kamu mencari sebuah halamanw eb untuk sebuah hasil spesifik seperti gambar atau tutorial. Kamu bisa menyediakan query string tersebut sebagai kamus dari string menggunakan kata kunci 108 pada request GET. Berikut adalah contohnya:

1import requests 2pip install requests 6import requests 3pip install requests 7import requests 5pip install requests 911import requests 81320

Membuat Request POST

membuat request POST sama mudahnya dengan membuat request GET. Kamu cukup menggunakan fungsi 109, bukan pip install requests 82. Ini akan berguna ketika kamu ingin secara otomatis mengisi form. Contohnya, kode ini akan mengunduh semua halaman Wikipedia tentang Nanotechnology dan menyimpannya di PC-mu.

1import requests 224pip install requests 610pip install requests 728pip install requests 9141118

Mengirim Cookie dan Header

Seperti yang disebutkan sebelumnya, kamu bisa mengakses cookie dan header yang dikirim balik oleh server menggunakan pip install requests 71 dan pip install requests 72. Modul Requests juga membolehkan kamu mengirim cookie dan header khusus dalam sebuah request. Ini akan berguna ketika kamu ingin membuat agen user khusus untuk request tersebut.

Untuk menambahkan header HTTP ke sebuah request, kamu cukup melempar sebuah 113 ke parameter 114. Begitu pula kamu bisa mengirim cookie kamu sendiri ke server menggunakan 113 yang dilempar ke parameter 116.

1import requests 2pip install requests 6req = requests.get('//tutsplus.com/') 7pip install requests 7pip install requests 9101112131515

Cookie juga bisa dilempar dalam sebuah Cookie Jar. Hal tersebut menyediakan lebih banyak antarmuka lengkap  untuk membuat kamu menggunakan cookie via banyak jalur. Berikut adalah contohnya:

1import requests 2pip install requests 6req.encoding # returns 'utf-8' 0pip install requests 7req.encoding # returns 'utf-8' 2pip install requests 9req.encoding # returns 'utf-8' 411req.encoding # returns 'utf-8' 61315req.encoding # returns 'utf-8' 916pip install requests 0118import requests 0pip install requests 04import requests 1import requests 3pip install requests 07

Objek Session

Kadang penting untuk mempertahankan beberapa parameter antar beberapa request. Objek Session akan melakukan itu. Contohnya, Session akan mempertahankan data cookie antar semua request yang dibuat menggunakan session yang sama. Objek Session menggunakan connection pooling urllib3. Hal ini berarti koneksi TCP di balik layar akan digunakan ulang untuk semua request yang dibuat untuk host yang sama. Ini bisa meningkatkan performa secara signifikan. Kamu bisa juga menggunakan fungsi-fungsi objek Requests pada objek Session.

Berikut adalah contoh beberapa request yang dikirim dengan dan tanpa menggunakan sessions:

1import requests 2pip install requests 6pip install requests 12pip install requests 7pip install requests 14pip install requests 9pip install requests 161113pip install requests 1915pip install requests 2116pip install requests 2318import requests 0pip install requests 26import requests 1pip install requests 28import requests 3pip install requests 30pip install requests 31pip install requests 32pip install requests 33pip install requests 34pip install requests 35pip install requests 36pip install requests 37pip install requests 38pip install requests 32

Seperti yang kamu bisa lihat, cookie session memiliki nilai yang berbeda pada request pertama dan kedua, tapi memiliki nilai yang sama ketika kita menggunakan objek Session. Kamu akan mendapatkan nilai yang berbeda saat mencoba kode ini, tapi dalam kasus kamu, cookie untuk request yang dibuat menggunakan objek Session akan memiliki nilai yang sama.

Session juga berguna ketika kamu ingin melempar data yang sama untuk semua request. Contohnya, kamu memutuskan untuk mengirim cookie atau header user-agent dengan semua request ke sebuah domain, kamu bisa menggunakan objek Session. Berikut adalah contohnya:

1import requests 2pip install requests 6pip install requests 44pip install requests 7pip install requests 46pip install requests 911pip install requests 4913pip install requests 5115pip install requests 531618pip install requests 56import requests 0pip install requests 58import requests 1pip install requests 60import requests 3pip install requests 31pip install requests 63pip install requests 33pip install requests 65pip install requests 34pip install requests 53

Seperti yang bisa kamu lihat, session cookie 117 dikirim pada tiga request tersebut. Tapi cookie 118 hanya dikirim pada request kedua. Cookie 118 tidak disebut di request ketiga. Ini membuktikan cookie atau data yang diatur pada sebuah request tidak akan dikirim bersama request session yang lain.

Kesimpulan

Konsep yang dibahas pada tutorial ini akan membantu kamu membuat request dasar ke sebuah server dengan mengirim header, cookie, atau query string tertentu. Ini akan sangat berguna ketika kamu ingin mengorek halaman web untuk mendapatkan informasi. Sekarang, kamu juga sudah bisa secara otomatis mengunduh file musik dan wallpaper dari berbagai situs berbeda setelah kamu tahu pola dari URL-nya.

Postingan terbaru

LIHAT SEMUA