Semalt: Mengikis Web Dengan Python

Adakah anda pernah melalui salah satu momen menakutkan ketika anda tidak mempunyai Wi-Fi. Sekiranya demikian, maka anda telah menyedari betapa banyak perkara yang anda lakukan di komputer bergantung kepada internet. Di luar kebiasaan, anda akan dapat memeriksa e-mel anda, melihat foto Instagram rakan anda dan juga membaca tweet mereka.

Oleh kerana begitu banyak kerja komputer yang melibatkan proses web, akan sangat baik jika program anda dapat online juga. Ini adalah kes untuk mengikis web . Ini melibatkan penggunaan program untuk memuat turun dan memproses kandungan dari web. Sebagai contoh, Google menggunakan pelbagai program mengikis untuk mengindeks laman web untuk mesin pencari mereka.

Terdapat banyak cara di mana anda dapat mengikis data dari internet. Sebilangan besar kaedah ini memerlukan perintah dari pelbagai bahasa pengaturcaraan seperti Python dan R. Contohnya, dengan Python, anda dapat menggunakan sejumlah modul seperti Permintaan, sup Indah, Webbrowser, dan Selenium.

Modul 'Permintaan' membolehkan anda memuat turun fail dengan mudah dari web tanpa perlu bimbang tentang masalah sukar seperti masalah sambungan, ralat rangkaian dan pemampatan data. Ia tidak semestinya disertakan dengan Python, dan anda mesti memasangnya terlebih dahulu.

Modul ini dibangunkan kerana modul 'urllib2' Python mempunyai banyak komplikasi sehingga sukar digunakan. Ia sebenarnya sangat mudah dipasang. Yang harus anda lakukan hanyalah menjalankan permintaan pemasangan pip dari baris arahan. Anda kemudian perlu melakukan ujian mudah untuk memastikan bahawa modul telah dipasang dengan betul. Untuk melakukannya, anda boleh menaip '>>> mengimport permintaan' ke dalam shell interaktif. Sekiranya tidak ada mesej ralat yang muncul, maka pemasangan berjaya.

Untuk memuat turun halaman, anda perlu memulakan fungsi 'request.get ()'. Fungsi mengambil rentetan URL untuk memuat turun dan kemudian mengembalikan objek 'respons'. Ini mengandungi respons pelayan web yang dikembalikan untuk permintaan anda. Sekiranya permintaan anda berjaya, maka halaman web yang dimuat akan disimpan sebagai rentetan dalam pemboleh ubah teks objek respons.

Objek respons biasanya mempunyai atribut kod status yang boleh anda gunakan untuk mengetahui sama ada muat turun anda berjaya. Begitu juga, anda boleh memanggil kaedah 'raise_for_status ()' pada objek tindak balas. Ini menimbulkan pengecualian jika terdapat kesalahan semasa memuat turun fail. Ini adalah kaedah terbaik untuk memastikan bahawa program berhenti sekiranya berlaku muat turun yang tidak baik.

Dari sini, anda boleh menyimpan fail web yang dimuat turun pada cakera keras anda menggunakan fungsi standard, 'open ()' dan 'write ()'. Walau bagaimanapun, untuk mengekalkan pengekodan teks Unicode, anda harus mengganti data teks dengan data binari.

Untuk menulis data ke fail, anda dapat menggunakan kaedah 'for' loop with 'iter_content ()'. Kaedah ini mengembalikan sebahagian besar data pada setiap lelaran melalui gelung. Setiap pukal adalah dalam bait, dan anda harus menentukan berapa banyak bait yang akan dikandung setiap pukal. Setelah selesai menulis, panggil 'tutup ()' untuk menutup fail, dan tugas anda sekarang sudah selesai.