Pengikisan Web

Pengikisan web menggunakan Python

Pengikisan web menggunakan Python
Pengikisan web adalah cara otomatis untuk mengekstrak dan memproses informasi dari situs web internet dalam jumlah yang sangat besar. Data di situs web internet tidak terstruktur, yang dapat dikumpulkan dan disusun melalui pengikisan web. Mesin pencari seperti Google, Bing, Yahoo memiliki bot yang mengambil data dari situs internet dan mengindeksnya di halaman pencarian mereka. Data juga dapat diekstraksi menggunakan API, yang mungkin merupakan salah satu cara terbaik untuk mengekstrak data dari web. Situs web terkenal seperti Facebook, Google, Amazon memberi pengguna API terstruktur dengan baik untuk berinteraksi dengan data, tetapi Anda tidak akan melihat API ini di mana-mana.

Misalnya, jika Anda ingin mendapatkan pembaruan rutin pada produk favorit Anda untuk penawaran diskon atau Anda ingin mengotomatiskan proses pengunduhan episode musim favorit Anda satu per satu, dan situs web tidak memiliki API untuk itu maka satu-satunya pilihan yang tersisa adalah pengikisan web.Pengikisan web mungkin ilegal di beberapa situs web, tergantung apakah situs web mengizinkannya atau tidak. Situs web menggunakan "robot".txt” untuk secara eksplisit menentukan URL yang tidak boleh dihapus. Anda dapat memeriksa apakah situs web mengizinkannya atau tidak dengan menambahkan "robot".txt” dengan nama domain situs web. Misalnya, https://www.google.com/robot.txt

Pada artikel ini, kita akan menggunakan Python untuk scraping karena sangat mudah untuk setup dan penggunaan. Ini memiliki banyak perpustakaan built-in dan pihak ketiga yang dapat digunakan untuk menggores dan mengatur data. Kami akan menggunakan dua pustaka Python "urllib" untuk mengambil halaman web dan "BeautifulSoup" untuk mengurai halaman web untuk menerapkan operasi pemrograman.

Cara kerja Pengikisan Web?

Kami mengirim permintaan ke halaman web, dari mana Anda ingin mengikis data. Situs web akan menanggapi permintaan dengan konten HTML halaman. Kemudian, kita dapat mengurai halaman web ini ke BeautifulSoup untuk diproses lebih lanjut. Untuk mengambil halaman web, kami akan menggunakan perpustakaan "urllib" dengan Python.

Urllib akan mengunduh konten halaman web dalam HTML. Kami tidak dapat menerapkan operasi string ke halaman web HTML ini untuk ekstraksi konten dan pemrosesan lebih lanjut. Kami akan menggunakan pustaka Python "BeautifulSoup" yang akan mengurai konten dan mengekstrak data yang menarik.

Menggores artikel dari Linuxhint.com

Sekarang setelah kita memiliki gagasan tentang cara kerja pengikisan web, mari kita lakukan beberapa latihan. Kami akan mencoba mengikis judul artikel dan tautan dari Linuxhint.com. Jadi buka https://linuxhint.com/ di browser Anda.

Sekarang tekan CRTL+U untuk melihat kode sumber HTML halaman web web.

Salin kode sumber, dan buka https://htmlformatter.com/ untuk mempercantik kode the. Setelah mempercantik kode, mudah untuk memeriksa kode dan menemukan informasi menarik.

Sekarang, salin lagi kode yang diformat dan tempel di editor teks favorit Anda seperti atom, teks luhur dll. Sekarang kita akan mengikis informasi menarik menggunakan Python. Ketik berikut ini

// Instal perpustakaan sup yang indah, urllib datang
pra-instal di Python
ubuntu@ubuntu:~$ sudo pip3 install bs4
ubuntu@ubuntu:~$ python3
Python 3.7.3 (default, 7 Oktober 2019, 12:56:13)
[GCC 8.3.0] di linux

Ketik "bantuan", "hak cipta", "kredit" atau "lisensi" untuk informasi lebih lanjut.

//impor urllibll
>>> urllib impor.permintaan
//impor sup cantik
>>> dari bs4 impor BeautifulSoup
//Masukkan URL yang ingin Anda ambil
>>> my_url = 'https://linuxhint.com/'
//Meminta halaman web URL menggunakan perintah urlopen
>>> klien = urllib.permintaan.urlopen(url_saya)
//Menyimpan halaman web HTML dalam variabel “html_page”
>>> html_page = klien.Baca()
//Tutup koneksi URL setelah mengambil halaman web
>>> klien.Menutup()
//parsing halaman web HTML ke BeautifulSoup untuk scraping
>>> page_soup = BeautifulSoup(html_page, "html.pengurai")

Sekarang mari kita lihat kode sumber HTML yang baru saja kita salin dan tempel untuk menemukan hal-hal yang kita minati.

Anda dapat melihat bahwa artikel pertama terdaftar di Linuxhint.com bernama "74 Contoh Operator Bash", temukan ini di kode sumber. Itu diapit di antara tag header, dan kodenya adalah



class="category-1561">Pemrograman BASH


title="74 Contoh Operator Bash">74 Operator Bash
Contoh


Kode yang sama berulang berulang-ulang dengan perubahan judul dan tautan artikel saja. Artikel berikutnya memiliki kode HTML berikut:



class="category-1343">Ubuntu
Pernis


title="Cara mengatur cache Varnish di Ubuntu 18.04">
Cara mengatur cache Varnish di Ubuntu 18.04


Anda dapat melihat bahwa semua artikel termasuk keduanya terlampir dalam “

” dan gunakan kelas yang sama “entry-title”. Kita dapat menggunakan fungsi "findAll" di perpustakaan Beautiful Soup untuk menemukan dan membuat daftar semua "

” memiliki kelas “entry-title”. Ketik yang berikut di konsol Python Anda

// Perintah ini akan menemukan semua “

” elemen tag yang memiliki kelas bernama
"entri-judul". Outputnya akan disimpan dalam array.
>>> artikel = page_soup.temukanSemua("h2" ,
"class" : "entry-title")
// Jumlah artikel yang ditemukan di halaman depan Linuxhint.com
>>> len(artikel)
102
// Pertama kali diekstrak “

” elemen tag yang berisi nama artikel dan tautan
>>> artikel[0]


title="74 Contoh Operator Bash">
74 Contoh Operator Bash


// Ekstrak kedua “

” elemen tag yang berisi nama artikel dan tautan
>>> artikel[1]


title="Cara mengatur cache Varnish di Ubuntu 18.04">
Cara mengatur cache Varnish di Ubuntu 18.04


// Menampilkan hanya teks dalam tag HTML menggunakan fungsi teks
>>> artikel[1].teks
'Cara mengatur cache Varnish di Ubuntu 18.04'

Sekarang kita memiliki daftar semua 102 HTML “

” elemen tag yang berisi tautan artikel dan judul artikel. Kami dapat mengekstrak tautan dan judul artikel. Untuk mengekstrak tautan dari “” tag, kita dapat menggunakan kode berikut

// Kode berikut akan mengekstrak tautan dari pertama

elemen tanda
>>> untuk link di artikel[0].find_all('a', href=True):
…    cetak(link['href'])

https://linuxhint.com/bash_operator_examples/

Sekarang kita dapat menulis perulangan for yang berulang melalui setiap “

” tag elemen dalam daftar “artikel” dan ekstrak tautan dan judul artikel.

>>> untuk saya dalam rentang (0,10):
…    cetak(artikel[i].teks)
…    untuk tautan di artikel[i].find_all('a', href=True):
…              print(link['href']+"\n")

74 Contoh Operator Bash
https://linuxhint.com/bash_operator_examples/
Cara mengatur cache Varnish di Ubuntu 18.04
https://linuxhint.com/varnish_cache_ubuntu_1804/
PineTime: Smartwatch Ramah Linux
https://linuxhint.com/pinetime_linux_smartwatch/
10 Laptop Linux Murah Terbaik untuk Dibeli dengan Anggaran
https://linuxhint.com/best_cheap_linux_laptops/
Game Remaster HD untuk Linux yang Tidak Pernah Rilis Linux…
https://linuxhint.com/hd_remastered_games_linux/
60 Aplikasi Perekaman Layar FPS untuk Linux
https://linuxhint.com/60_fps_screen_recording_apps_linux/
74 Contoh Operator Bash
https://linuxhint.com/bash_operator_examples/
… gunting…

Demikian pula, Anda menyimpan hasil ini ke file JSON atau CSV.

Kesimpulan

Tugas harian Anda tidak hanya manajemen file atau eksekusi perintah sistem. Anda juga dapat mengotomatiskan tugas terkait web seperti otomatisasi pengunduhan file atau ekstraksi data dengan menggores web dengan Python. Artikel ini terbatas hanya pada ekstraksi data sederhana tetapi Anda dapat melakukan otomatisasi tugas besar menggunakan "urllib" dan "BeautifulSoup".

Cara Mengubah Pengaturan Mouse dan Touchpad Menggunakan Xinput di Linux
Sebagian besar distribusi Linux dikirimkan dengan pustaka "libinput" secara default untuk menangani kejadian input pada sistem. Ini dapat memproses ke...
Petakan ulang tombol mouse Anda secara berbeda untuk perangkat lunak yang berbeda dengan Kontrol Tombol X-Mouse
Mungkin Anda membutuhkan alat yang dapat membuat kontrol mouse Anda berubah dengan setiap aplikasi yang Anda gunakan. Jika demikian, Anda dapat mencob...
Ulasan Mouse Nirkabel Microsoft Sculpt Touch
Saya baru-baru ini membaca tentang Microsoft Sculpt Touch mouse nirkabel dan memutuskan untuk membelinya. Setelah menggunakannya untuk sementara waktu...