Python Web Scraping - Situs web berbasis formulir

Pada bab sebelumnya, kita telah melihat mengorek situs web dinamis. Dalam bab ini, mari kita pahami scraping situs web yang bekerja pada input berbasis pengguna, yaitu situs web berbasis formulir.

pengantar

Saat ini WWW (World Wide Web) bergerak menuju media sosial serta konten yang dihasilkan. Jadi muncul pertanyaan bagaimana kita dapat mengakses informasi semacam itu yang berada di luar layar login? Untuk ini kita perlu berurusan dengan formulir dan login.

Pada bab sebelumnya, kami bekerja dengan metode HTTP GET untuk meminta informasi tetapi dalam bab ini kami akan bekerja dengan metode HTTP POST yang mendorong informasi ke server web untuk penyimpanan dan analisis.

Berinteraksi dengan formulir Login

Saat bekerja di Internet, Anda pasti sering berinteraksi dengan formulir login. Mereka mungkin sangat sederhana seperti hanya memasukkan beberapa bidang HTML, tombol kirim dan halaman tindakan atau mereka mungkin rumit dan memiliki beberapa bidang tambahan seperti email, tinggalkan pesan bersama dengan captcha untuk alasan keamanan.

Di bagian ini, kita akan membahas formulir kirim sederhana dengan bantuan pustaka permintaan Python.

Pertama, kita perlu mengimpor pustaka permintaan sebagai berikut -

import requests

Sekarang, kami perlu memberikan informasi untuk bidang formulir login.

parameters = {‘Name’:’Enter your name’, ‘Email-id’:’Your Emailid’,’Message’:’Type your message here’}

Di baris kode berikutnya, kita perlu memberikan URL tempat aksi formulir akan terjadi.

r = requests.post(“enter the URL”, data = parameters)
print(r.text)

Setelah menjalankan skrip, itu akan mengembalikan konten halaman tempat tindakan telah terjadi.

Misalkan jika Anda ingin mengirimkan gambar apa pun dengan formulir, maka sangat mudah dengan requests.post (). Anda dapat memahaminya dengan bantuan mengikuti skrip Python -

import requests
file = {‘Uploadfile’: open(’C:\Usres\desktop\123.png’,‘rb’)}
r = requests.post(“enter the URL”, files = file)
print(r.text)

Memuat Cookie dari Server Web

Cookie, terkadang disebut cookie web atau cookie internet, adalah sepotong kecil data yang dikirim dari situs web dan komputer kami menyimpannya dalam file yang terletak di dalam browser web kami.

Dalam konteks berurusan dengan formulir login, cookie dapat terdiri dari dua jenis. Pertama, kita telah membahas bagian sebelumnya, yang memungkinkan kita untuk mengirimkan informasi ke situs web dan yang kedua yang memungkinkan kita untuk tetap dalam status "masuk" permanen selama kunjungan kita ke situs web. Untuk jenis formulir kedua, situs web menggunakan cookie untuk melacak siapa yang masuk dan siapa yang tidak.

Apa yang dilakukan cookie?

Saat ini sebagian besar situs web menggunakan cookie untuk pelacakan. Kami dapat memahami cara kerja cookie dengan bantuan langkah-langkah berikut -

Step 1- Pertama, situs akan mengotentikasi kredensial login kami dan menyimpannya di cookie browser kami. Cookie ini biasanya berisi informasi toke, time-out, dan pelacakan yang dihasilkan server.

Step 2- Selanjutnya, situs web akan menggunakan cookie sebagai bukti otentikasi. Otentikasi ini selalu ditampilkan setiap kali kami mengunjungi situs web.

Cookie sangat bermasalah untuk pencakar web karena jika pencakar web tidak melacak cookie, formulir yang dikirimkan akan dikirim kembali dan di halaman berikutnya tampaknya mereka tidak pernah masuk. Sangat mudah untuk melacak cookie dengan bantuan Python requests perpustakaan, seperti yang ditunjukkan di bawah ini -

import requests
parameters = {‘Name’:’Enter your name’, ‘Email-id’:’Your Emailid’,’Message’:’Type your message here’}
r = requests.post(“enter the URL”, data = parameters)

Pada baris kode di atas, URL akan menjadi halaman yang akan bertindak sebagai pemroses formulir login.

print(‘The cookie is:’)
print(r.cookies.get_dict())
print(r.text)

Setelah menjalankan skrip di atas, kami akan mengambil cookie dari hasil permintaan terakhir.

Ada masalah lain dengan cookie yang terkadang situs web sering memodifikasi cookie tanpa peringatan. Situasi seperti itu dapat diatasirequests.Session() sebagai berikut -

import requests
session = requests.Session()
parameters = {‘Name’:’Enter your name’, ‘Email-id’:’Your Emailid’,’Message’:’Type your message here’}
r = session.post(“enter the URL”, data = parameters)

Pada baris kode di atas, URL akan menjadi halaman yang akan bertindak sebagai pemroses formulir login.

print(‘The cookie is:’)
print(r.cookies.get_dict())
print(r.text)

Perhatikan bahwa Anda dapat dengan mudah memahami perbedaan antara skrip dengan sesi dan tanpa sesi.

Mengotomatiskan formulir dengan Python

Pada bagian ini kita akan berurusan dengan modul Python bernama Mekanisasi yang akan mengurangi pekerjaan kita dan mengotomatiskan proses pengisian formulir.

Modul mekanik

Modul Mekanisasi memberi kita antarmuka tingkat tinggi untuk berinteraksi dengan formulir. Sebelum mulai menggunakannya kita perlu menginstalnya dengan perintah berikut -

pip install mechanize

Perhatikan bahwa ini hanya akan bekerja di Python 2.x.

Contoh

Dalam contoh ini, kami akan mengotomatiskan proses pengisian formulir login yang memiliki dua bidang yaitu email dan kata sandi -

import mechanize
brwsr = mechanize.Browser()
brwsr.open(Enter the URL of login)
brwsr.select_form(nr = 0)
brwsr['email'] = ‘Enter email’
brwsr['password'] = ‘Enter password’
response = brwsr.submit()
brwsr.submit()

Kode diatas sangat mudah dimengerti. Pertama, kami mengimpor modul mekanisasi. Kemudian objek browser Mekanis telah dibuat. Kemudian, kami menavigasi ke URL login dan memilih formulir. Setelah itu, nama dan nilai diteruskan langsung ke objek browser.