Python

Mengurai HTML menggunakan Python

Mengurai HTML menggunakan Python
Parsing HTML adalah salah satu tugas paling umum yang dilakukan saat ini untuk mengumpulkan informasi dari situs web dan menambangnya untuk berbagai tujuan, seperti menetapkan kinerja harga suatu produk dari waktu ke waktu, ulasan buku di situs web, dan banyak lagi. Ada banyak perpustakaan seperti BeautifulSoup di Python yang mengabstraksi begitu banyak poin menyakitkan dalam mengurai HTML tetapi perlu diketahui bagaimana perpustakaan itu benar-benar bekerja di bawah lapisan abstraksi itu.

Dalam pelajaran ini, itulah yang ingin kami lakukan. Kami akan mencari tahu bagaimana nilai tag HTML yang berbeda dapat diekstraksi dan juga mengesampingkan fungsionalitas default modul ini untuk menambahkan beberapa logika kita sendiri. Kami akan melakukan ini menggunakan HTMLParser kelas dengan Python di html.pengurai modul. Mari kita lihat kodenya beraksi.

Melihat kelas HTMLParser

Untuk mengurai teks HTML dengan Python, kita dapat menggunakan HTMLParser masuk kelas html.pengurai modul. Mari kita lihat definisi kelas untuk HTMLParser kelas:

kelas html.pengurai.HTMLParser(*, convert_charrefs=Benar)

Itu convert_charrefs bidang, jika disetel ke True akan membuat semua referensi karakter dikonversi ke padanan Unicode mereka. Hanya naskah/gaya elemen tidak dikonversi. Sekarang, kita akan mencoba memahami setiap fungsi untuk kelas ini juga untuk lebih memahami apa yang dilakukan setiap fungsi.

Mensubklasifikasikan kelas HTMLParser

Di bagian ini, kita akan membuat sub-kelas kelas HTMLParser dan akan melihat beberapa fungsi yang dipanggil ketika data HTML diteruskan ke instance kelas. Mari kita menulis skrip sederhana yang melakukan semua ini:

dari html.pengurai mengimpor HTMLParser
kelas LinuxHTMLParser(HTMLParser):
def handle_starttag (diri, tag, attrs):
print("Tag awal ditemukan:", tag)
def handle_endtag(diri, tag):
print("Tag akhir ditemukan :", tag)
def handle_data(sendiri, data):
print("Data ditemukan :", data)
parser = LinuxHTMLParser()
pengurai.makan("
'

Modul penguraian HTML Python


')

Inilah yang kami dapatkan kembali dengan perintah ini:

Subkelas Python HTMLParser

Fungsi HTMLParser

Di bagian ini, kita akan bekerja dengan berbagai fungsi kelas HTMLParser dan melihat fungsionalitas masing-masing:

dari html.pengurai mengimpor HTMLParser
dari html.entitas mengimpor name2codepoint
kelas LinuxHint_Parse(HTMLParser):
def handle_starttag (diri, tag, attrs):
print("Tag Awal:", tanda)
untuk attr di attrs:
print("attr:", attr)
def handle_endtag(diri, tag):
print("Tag Akhir :", tanda)
def handle_data(sendiri, data):
print("Data :", data)
def handle_comment(diri, data):
print("Komentar :", data)
def handle_entityref(diri sendiri, nama):
c = chr(nama2codepoint[nama])
print("Bernama ent:", c)
def handle_charref(diri sendiri, nama):
jika nama.dimulai dengan('x'):
c = chr(int(nama[1:], 16))
lain:
c = chr(int(nama))
print("Bilangan :", c)
def handle_decl(diri, data):
print("Des:", data)
parser = LinuxHint_Parse()

Dengan berbagai panggilan, mari kita masukkan data HTML terpisah ke instance ini dan lihat output apa yang dihasilkan panggilan ini these. Kita akan mulai dengan yang sederhana DOCTYPE tali:

pengurai.makan(''"http://www.w3.org/TR/html4/strict.dtd">')

Inilah yang kami dapatkan kembali dengan panggilan ini:

DOCTYPE String

Sekarang mari kita coba tag gambar dan lihat data apa yang diekstraknya:

pengurai.makan('logo ular piton')

Inilah yang kami dapatkan kembali dengan panggilan ini:

Tag gambar HTMLParser

Selanjutnya, mari kita coba bagaimana tag skrip berperilaku dengan fungsi Python:

pengurai.makan('')
pengurai.makan('')
pengurai.feed('#python warna: hijau ')

Inilah yang kami dapatkan kembali dengan panggilan ini:

Tag skrip di htmlparser

Terakhir, kami juga memberikan komentar ke bagian HTMLParser:

pengurai.makan(''
'')

Inilah yang kami dapatkan kembali dengan panggilan ini:

Mengurai komentar

Kesimpulan

Dalam pelajaran ini, kita melihat bagaimana kita dapat mengurai HTML menggunakan kelas HTMLParser Python sendiri tanpa perpustakaan lain. Kami dapat dengan mudah memodifikasi kode untuk mengubah sumber data HTML menjadi klien HTTP.

Baca lebih banyak posting berbasis Python di sini.

Cara Menginstal dan Memainkan Doom di Linux
Pengantar Doom Seri Doom berasal dari tahun 90-an setelah rilis Doom. Itu adalah hit instan dan sejak saat itu seri game telah menerima banyak penghar...
Vulkan untuk Pengguna Linux
Dengan setiap generasi baru kartu grafis, kami melihat pengembang game mendorong batas kesetiaan grafis dan selangkah lebih dekat ke fotorealisme. Tet...
OpenTTD vs Simutrans
Membuat simulasi transportasi Anda sendiri bisa menyenangkan, santai, dan sangat menarik. Itulah mengapa Anda perlu memastikan bahwa Anda mencoba game...