Contohnya, jika anda ingin mendapatkan kemas kini berkala mengenai produk kegemaran anda untuk tawaran diskaun atau anda mahu mengautomasikan proses memuat turun episod musim kegemaran anda satu demi satu, dan laman web tidak mempunyai API untuk itu maka satu-satunya pilihan anda tinggal dengan mengikis web.Pengikisan laman web mungkin tidak sah di beberapa laman web, bergantung pada sama ada laman web membenarkannya atau tidak. Laman web menggunakan "robot.fail txt ”untuk secara jelas menentukan URL yang tidak dibenarkan dibatalkan. Anda boleh memeriksa sama ada laman web membenarkannya atau tidak dengan menambahkan "robot.txt ”dengan nama domain laman web. Contohnya, https: // www.google.com / robot.txt
Dalam artikel ini, kami akan menggunakan Python untuk mengikis kerana sangat mudah untuk disiapkan dan digunakan. Ia mempunyai banyak perpustakaan pihak ketiga dan yang boleh digunakan untuk mengikis dan mengatur data. Kami akan menggunakan dua pustaka Python "urllib" untuk mengambil halaman web dan "BeautifulSoup" untuk menguraikan halaman web untuk menerapkan operasi pengaturcaraan.
Bagaimana Pengikisan Web berfungsi?
Kami menghantar permintaan ke laman web, dari mana anda mahu mengikis data. Laman web akan menjawab permintaan tersebut dengan kandungan halaman HTML. Kemudian, kami dapat menghuraikan halaman web ini ke BeautifulSoup untuk proses selanjutnya. Untuk mengambil laman web, kami akan menggunakan perpustakaan "urllib" di Python.
Urllib akan memuat turun kandungan halaman web dalam HTML. Kami tidak dapat menerapkan operasi rentetan ke laman web HTML ini untuk pengekstrakan kandungan dan pemprosesan lebih lanjut. Kami akan menggunakan perpustakaan Python "BeautifulSoup" yang akan menguraikan kandungan dan mengekstrak data yang menarik.
Mengikis artikel dari Linuxhint.com
Sekarang kita mempunyai idea bagaimana kerja mengikis web berfungsi, mari kita lakukan latihan. Kami akan cuba mengikis tajuk dan pautan artikel dari Linuxhint.com. Oleh itu, buka https: // linuxhint.com / dalam penyemak imbas anda.
Sekarang tekan CRTL + U untuk melihat kod sumber HTML dari laman web.
Salin kod sumber, dan pergi ke https: // htmlformatter.com / untuk memperagakan kod. Setelah memperagakan kod, mudah untuk memeriksa kod dan mencari maklumat menarik.
Sekarang, salin semula kod yang diformat dan tampal di editor teks kegemaran anda seperti atom, teks luhur dll. Sekarang kita akan mengikis maklumat menarik menggunakan Python. Taipkan perkara berikut
// Pasang perpustakaan sup yang indah, urllib datangdipasang di Python
ubuntu @ ubuntu: ~ $ sudo pip3 pasang bs4
ubuntu @ ubuntu: ~ $ python3
Python 3.7.3 (lalai, 7 Okt 2019, 12:56:13)
[GCC 8.3.0] pada linux
Ketik "bantuan", "hak cipta", "kredit" atau "lesen" untuk maklumat lebih lanjut.
// Import uribib>>> mengimport urlib.permintaan
// Import BeautifulSoup
>>> dari bs4 import BeautifulSoup
// Masukkan URL yang ingin anda ambil
>>> my_url = 'https: // linuxhint.com / '
// Minta halaman web URL menggunakan perintah urlopen
>>> pelanggan = urllib.permintaan.urlopen (my_url)
// Simpan laman web HTML dalam pemboleh ubah "html_page"
>>> html_page = pelanggan.baca ()
// Tutup sambungan URL setelah mengambil halaman web
>>> pelanggan.tutup ()
// uraikan laman web HTML ke BeautifulSoup untuk mengikis
>>> page_soup = BeautifulSoup (html_page, "html.penghurai ")
Sekarang mari kita lihat kod sumber HTML yang baru saja kita salin dan tampal untuk mencari perkara yang menarik minat kita.
Anda dapat melihat bahawa artikel pertama yang disenaraikan di Linuxhint.com diberi nama "74 Contoh Pengendali Bash", cari ini dalam kod sumber. Ia dilampirkan di antara tag header, dan kodnya adalah
title = "74 Contoh Operator Bash"> 74 Operator Bash
Contoh
Kod yang sama berulang-ulang dengan perubahan hanya tajuk artikel dan pautan. Artikel seterusnya mempunyai kod HTML berikut
title = "Cara mengatur cache Varnish di Ubuntu 18.04 ">
Cara menyediakan cache Varnish di Ubuntu 18.04
Anda dapat melihat bahawa semua artikel termasuk kedua-dua ini dilampirkan dalam yang sama "
"Tag dan gunakan" entri-tajuk "kelas yang sama. Kita dapat menggunakan fungsi "findAll" di perpustakaan Sup Indah untuk mencari dan menyenaraikan semua ""Mempunyai kelas" tajuk kemasukan ". Taipkan perkara berikut di konsol Python anda // Perintah ini akan menemui semua "Elemen tag yang dinamakan kelas
"Tajuk kemasukan". Keluaran akan disimpan dalam pelbagai.
>>> artikel = page_soup.cariSemua ("h2" ,
"class": "entry-title")
// Jumlah artikel yang terdapat di muka depan Linuxhint.com
>>> len (artikel)
102
// Pertama diekstrak "Elemen tag yang mengandungi nama dan pautan artikel
>>> artikel [0]
tajuk = "74 Contoh Pengendali Bash">
74 Contoh Pengendali Bash
// Diekstrak kedua "Elemen tag yang mengandungi nama dan pautan artikel
>>> artikel [1]
title = "Cara mengatur cache Varnish di Ubuntu 18.04 ">
Cara menyediakan cache Varnish di Ubuntu 18.04
// Hanya memaparkan teks dalam tag HTML menggunakan fungsi teks
>>> artikel [1].teks
'Cara mengatur cache Varnish di Ubuntu 18.04 '
Elemen tag yang dinamakan kelas
"Tajuk kemasukan". Keluaran akan disimpan dalam pelbagai.
>>> artikel = page_soup.cariSemua ("h2" ,
"class": "entry-title")
// Jumlah artikel yang terdapat di muka depan Linuxhint.com
>>> len (artikel)
102
// Pertama diekstrak "Elemen tag yang mengandungi nama dan pautan artikel
>>> artikel [0]
tajuk = "74 Contoh Pengendali Bash">
74 Contoh Pengendali Bash
// Diekstrak kedua "Elemen tag yang mengandungi nama dan pautan artikel
>>> artikel [1]
title = "Cara mengatur cache Varnish di Ubuntu 18.04 ">
Cara menyediakan cache Varnish di Ubuntu 18.04
// Hanya memaparkan teks dalam tag HTML menggunakan fungsi teks
>>> artikel [1].teks
'Cara mengatur cache Varnish di Ubuntu 18.04 '
>>> artikel [0]
tajuk = "74 Contoh Pengendali Bash">
74 Contoh Pengendali Bash
// Diekstrak kedua "
Elemen tag yang mengandungi nama dan pautan artikel
>>> artikel [1]
title = "Cara mengatur cache Varnish di Ubuntu 18.04 ">
Cara menyediakan cache Varnish di Ubuntu 18.04
// Hanya memaparkan teks dalam tag HTML menggunakan fungsi teks
>>> artikel [1].teks
'Cara mengatur cache Varnish di Ubuntu 18.04 '
title = "Cara mengatur cache Varnish di Ubuntu 18.04 ">
Cara menyediakan cache Varnish di Ubuntu 18.04
Sekarang kita mempunyai senarai semua 102 HTML “
Elemen tag yang mengandungi pautan artikel dan tajuk artikel. Kami dapat mengekstrak pautan dan tajuk artikel. Untuk mengekstrak pautan dari ", Kita boleh menggunakan kod berikut // Kod berikut akan mengekstrak pautan dari yang pertama elemen teg
>>> untuk pautan dalam artikel [0].find_all ('a', href = Betul):
... cetak (pautan ['href'])
…
https: // linuxhint.com / bash_operator_contoh /
Sekarang kita dapat menulis untuk loop yang berulang setiap “
Elemen tag dalam senarai "artikel" dan ekstrak pautan artikel dan tajuk. >>> untuk i dalam jarak (0,10):
... cetak (artikel [i].teks)
… Untuk pautan dalam artikel [i].find_all ('a', href = Betul):
… Cetak (pautan ['href'] + "\ n")
…
74 Contoh Pengendali Bash
https: // linuxhint.com / bash_operator_contoh /
Cara menyediakan cache Varnish di Ubuntu 18.04
https: // linuxhint.com / varnish_cache_ubuntu_1804 /
PineTime: Jam Tangan Pintar Mesra Linux
https: // linuxhint.com / pinetime_linux_smartwatch /
10 Komputer riba Linux Murah Terbaik untuk Dibeli dengan Belanjawan
https: // linuxhint.com / best_cheap_linux_laptops /
HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux…
https: // linuxhint.com / hd_remastered_games_linux /
60 Aplikasi Rakaman Skrin FPS untuk Linux
https: // linuxhint.com / 60_fps_screen_recording_apps_linux /
74 Contoh Pengendali Bash
https: // linuxhint.com / bash_operator_contoh /
... hirup ..
Begitu juga, anda menyimpan hasil ini ke fail JSON atau CSV.
Kesimpulannya
Tugas harian anda bukan hanya pengurusan fail atau pelaksanaan perintah sistem. Anda juga boleh mengautomasikan tugas yang berkaitan dengan web seperti automasi muat turun fail atau pengekstrakan data dengan mengikis web di Python. Artikel ini hanya terbatas pada pengekstrakan data yang sederhana tetapi anda boleh melakukan automasi tugas besar dengan menggunakan "urllib" dan "BeautifulSoup".
>>> untuk pautan dalam artikel [0].find_all ('a', href = Betul):
... cetak (pautan ['href'])
…
https: // linuxhint.com / bash_operator_contoh /
... cetak (artikel [i].teks)
… Untuk pautan dalam artikel [i].find_all ('a', href = Betul):
… Cetak (pautan ['href'] + "\ n")
…
74 Contoh Pengendali Bash
https: // linuxhint.com / bash_operator_contoh /
Cara menyediakan cache Varnish di Ubuntu 18.04
https: // linuxhint.com / varnish_cache_ubuntu_1804 /
PineTime: Jam Tangan Pintar Mesra Linux
https: // linuxhint.com / pinetime_linux_smartwatch /
10 Komputer riba Linux Murah Terbaik untuk Dibeli dengan Belanjawan
https: // linuxhint.com / best_cheap_linux_laptops /
HD Remastered Games untuk Linux yang Tidak Pernah Melancarkan Linux…
https: // linuxhint.com / hd_remastered_games_linux /
60 Aplikasi Rakaman Skrin FPS untuk Linux
https: // linuxhint.com / 60_fps_screen_recording_apps_linux /
74 Contoh Pengendali Bash
https: // linuxhint.com / bash_operator_contoh /
... hirup ..