Python

Masuk Ke Situs Web Dengan Python

Masuk Ke Situs Web Dengan Python
Fitur login adalah fungsi penting dalam aplikasi web saat ini. Fitur ini membantu menjaga konten khusus dari non-pengguna situs dan juga digunakan untuk mengidentifikasi pengguna premium juga. Oleh karena itu, jika Anda bermaksud menggores situs web, Anda dapat menemukan fitur login jika kontennya hanya tersedia untuk pengguna terdaftar.

Tutorial scraping web telah dibahas di masa lalu, oleh karena itu tutorial ini hanya mencakup aspek mendapatkan akses ke situs web dengan masuk dengan kode alih-alih melakukannya secara manual dengan menggunakan browser.

Untuk memahami tutorial ini dan dapat menulis skrip untuk masuk ke situs web, Anda memerlukan pemahaman tentang HTML. Mungkin tidak cukup untuk membangun situs web yang luar biasa, tetapi cukup untuk memahami struktur halaman web dasar.

Instalasi

Ini akan dilakukan dengan perpustakaan Permintaan dan BeautifulSoup Python. Selain pustaka Python tersebut, Anda akan memerlukan peramban yang bagus seperti Google Chrome atau Mozilla Firefox karena ini penting untuk analisis awal sebelum menulis kode.

Pustaka Permintaan dan BeautifulSoup dapat diinstal dengan perintah pip dari terminal seperti yang terlihat di bawah ini:

permintaan pemasangan pip
instal pip BeautifulSoup4

Untuk mengkonfirmasi keberhasilan instalasi, aktifkan shell interaktif Python yang dilakukan dengan mengetik ular piton ke terminal.

Kemudian impor kedua perpustakaan:

permintaan impor
dari bs4 impor BeautifulSoup

Impor berhasil jika tidak ada kesalahan.

Proses

Masuk ke situs web dengan skrip membutuhkan pengetahuan tentang HTML dan gagasan tentang cara kerja web. Mari kita lihat secara singkat cara kerja web.

Situs web dibuat dari dua bagian utama, sisi klien dan sisi server. Sisi klien adalah bagian dari situs web yang berinteraksi dengan pengguna, sedangkan sisi server adalah bagian dari situs web tempat logika bisnis dan operasi server lainnya seperti mengakses database dijalankan.

Saat Anda mencoba membuka situs web melalui tautannya, Anda membuat permintaan ke sisi server untuk mengambilkan Anda file HTML dan file statis lainnya seperti CSS dan JavaScript. Permintaan ini dikenal sebagai permintaan GET. Namun ketika Anda mengisi formulir, mengunggah file media atau dokumen, membuat posting dan mengklik katakanlah tombol kirim, Anda mengirim informasi ke sisi server. Permintaan ini dikenal sebagai permintaan POST.

Pemahaman kedua konsep itu akan menjadi penting saat menulis naskah kita.

Memeriksa situs web

Untuk mempraktikkan konsep artikel ini, kami akan menggunakan situs web Quotes To Scrape.

Masuk ke situs web memerlukan informasi seperti nama pengguna dan kata sandi.

Namun karena situs web ini hanya digunakan sebagai bukti konsep, apa pun boleh. Oleh karena itu kami akan menggunakan admin sebagai nama pengguna dan 12345 sebagai kata sandi.

Pertama, penting untuk melihat sumber halaman karena ini akan memberikan gambaran umum tentang struktur halaman web. Ini dapat dilakukan dengan mengklik kanan pada halaman web dan mengklik "Lihat sumber halaman". Selanjutnya, Anda memeriksa formulir login. Anda melakukan ini dengan mengklik kanan pada salah satu kotak login dan mengklik memeriksa elemen. Saat memeriksa elemen, Anda akan melihat memasukkan tag dan kemudian orang tua untuk m tag di suatu tempat di atasnya. Ini menunjukkan bahwa login pada dasarnya adalah formulir yang POSed ke sisi server situs web.

Sekarang, perhatikan nama atribut tag input untuk kotak nama pengguna dan kata sandi, mereka akan diperlukan saat menulis kode. Untuk situs web ini, nama atribut untuk nama pengguna dan kata sandi adalah nama pengguna dan kata sandi masing-masing.

Selanjutnya, kita harus tahu apakah ada parameter lain yang penting untuk login. Ayo cepat jelaskan ini. Untuk meningkatkan keamanan situs web, token biasanya dibuat untuk mencegah serangan Pemalsuan Lintas Situs.

Oleh karena itu, jika token tersebut tidak ditambahkan ke permintaan POST maka login akan gagal. Jadi bagaimana kita tahu tentang parameter seperti itu??

Kita perlu menggunakan tab Jaringan. Untuk mendapatkan tab ini di Google Chrome atau Mozilla Firefox, buka Alat Pengembang dan klik pada tab Jaringan.

Setelah Anda berada di tab jaringan, coba segarkan halaman saat ini dan Anda akan melihat permintaan masuk. Anda harus mencoba untuk berhati-hati terhadap permintaan POST yang dikirim saat kami mencoba masuk.

Inilah yang akan kami lakukan selanjutnya, sambil membuka tab Jaringan. Masukkan detail login dan coba login, permintaan pertama yang akan Anda lihat adalah permintaan POST.

 

Klik pada permintaan POST dan lihat parameter formulir. Anda akan melihat situs web memiliki csrf_token parameter dengan nilai. Nilai itu adalah nilai dinamis, oleh karena itu kita perlu menangkap nilai tersebut menggunakan using DAPATKAN minta dulu sebelum menggunakan using POS permintaan.

Untuk situs web lain yang sedang Anda kerjakan, Anda mungkin tidak melihat: csrf_token tetapi mungkin ada token lain yang dihasilkan secara dinamis. Seiring waktu, Anda akan menjadi lebih baik dalam mengetahui parameter yang benar-benar penting dalam melakukan upaya login.

Kode

Pertama, kita perlu menggunakan Requests dan BeautifulSoup untuk mendapatkan akses ke konten halaman halaman login.

dari permintaan impor Sesi
dari bs4 impor BeautifulSoup sebagai bs
 
dengan Session() sebagai s:
situs = s.get("http://kutipan.mengikis.com/login")
cetak (situs.kandungan)

Ini akan mencetak konten halaman login sebelum kita login dan jika Anda mencari kata kunci “Login”. Kata kunci akan ditemukan di konten halaman yang menunjukkan bahwa kita belum masuk.

Selanjutnya, kita akan mencari csrf_token kata kunci yang ditemukan sebagai salah satu parameter saat menggunakan tab jaringan sebelumnya. Jika kata kunci menunjukkan kecocokan dengan memasukkan tag, maka nilainya dapat diekstraksi setiap kali Anda menjalankan skrip menggunakan BeautifulSoup.

dari permintaan impor Sesi
dari bs4 impor BeautifulSoup sebagai bs
 
dengan Session() sebagai s:
situs = s.get("http://kutipan.mengikis.com/login")
bs_konten = bs(situs.konten, "html.pengurai")
token = bs_content.find("input", "name":"csrf_token")["nilai"]
login_data = "username":"admin","password":"12345", "csrf_token":token
s.post("http://quotes.mengikis.com/login",login_data)
home_page = s.get("http://kutipan.mengikis.com")
cetak(halaman_rumah.kandungan)

Ini akan mencetak konten halaman setelah masuk, dan jika Anda mencari kata kunci "Keluar". Kata kunci akan ditemukan di konten halaman yang menunjukkan bahwa kami berhasil masuk.

Mari kita lihat setiap baris kode.

dari permintaan impor Sesi
dari bs4 impor BeautifulSoup sebagai bs

Baris kode di atas digunakan untuk mengimpor objek Session dari perpustakaan permintaan dan objek BeautifulSoup dari perpustakaan bs4 menggunakan alias dari bs.

dengan Session() sebagai s:

Sesi permintaan digunakan saat Anda bermaksud menyimpan konteks permintaan, sehingga cookie dan semua informasi dari sesi permintaan tersebut dapat disimpan.

bs_konten = bs(situs.konten, "html.pengurai")
token = bs_content.find("input", "name":"csrf_token")["nilai"]

Kode ini di sini menggunakan perpustakaan BeautifulSoup sehingga csrf_token dapat diekstraksi dari  halaman web dan kemudian ditetapkan ke variabel token. Anda dapat mempelajari tentang mengekstrak data dari node menggunakan BeautifulSoup.

login_data = "username":"admin","password":"12345", "csrf_token":token
s.post("http://quotes.mengikis.com/login", login_data)

Kode di sini membuat kamus parameter yang akan digunakan untuk masuk. Kunci kamus adalah are nama atribut dari tag input dan nilainya adalah nilai atribut dari tag input.

Itu pos metode ini digunakan untuk mengirim permintaan posting dengan parameter dan masuk ke kami.

home_page = s.get("http://kutipan.mengikis.com")
cetak(halaman_beranda.kandungan)

Setelah login, baris kode di atas hanya mengekstrak informasi dari halaman untuk menunjukkan bahwa login berhasil.

Kesimpulan

Proses masuk ke situs web menggunakan Python cukup mudah, namun pengaturan situs web tidak sama sehingga beberapa situs terbukti lebih sulit untuk masuk daripada yang lain. Masih banyak yang bisa dilakukan untuk mengatasi tantangan login apa pun yang Anda miliki.

Hal terpenting dalam semua ini adalah pengetahuan tentang HTML, Permintaan, BeautifulSoup dan kemampuan untuk memahami informasi yang didapat dari tab Jaringan di alat Pengembang browser web Anda.

Cara Meningkatkan FPS di Linux?
FPS adalah singkatan dari Bingkai per detik. Tugas FPS adalah mengukur kecepatan bingkai dalam pemutaran video atau pertunjukan game. Dengan kata sede...
Game Lab Aplikasi Oculus Teratas
Jika Anda adalah pemilik headset Oculus maka Anda harus tahu tentang sideloading. Sideloading adalah proses menginstal konten non-toko di headset Anda...
10 Game Teratas untuk Dimainkan di Ubuntu
Platform Windows telah menjadi salah satu platform yang mendominasi untuk bermain game karena persentase besar dari game yang berkembang saat ini untu...