Python

Menghuraikan HTML menggunakan Python

Menghuraikan HTML menggunakan Python
Menghuraikan HTML adalah salah satu tugas yang paling biasa dilakukan hari ini untuk mengumpulkan maklumat dari laman web dan menambangnya untuk pelbagai tujuan, seperti menetapkan prestasi harga produk dari masa ke masa, ulasan buku di laman web dan banyak lagi. Terdapat banyak perpustakaan seperti BeautifulSoup di Python yang menyingkirkan begitu banyak titik menyakitkan dalam menghuraikan HTML tetapi perlu diketahui bagaimana perpustakaan tersebut benar-benar berfungsi di bawah lapisan abstraksi.

Dalam pelajaran ini, itulah yang ingin kita lakukan. Kami akan mengetahui bagaimana nilai tag HTML yang berbeza dapat diekstrak dan juga mengatasi fungsi lalai modul ini untuk menambahkan beberapa logik kami sendiri. Kami akan melakukan ini dengan menggunakan Penyusun HTML kelas di Python di html.menghuraikan modul. Mari lihat kodnya dalam tindakan.

Melihat kelas HTMLParser

Untuk menguraikan teks HTML di Python, kita dapat memanfaatkannya Penyusun HTML kelas di html.menghuraikan modul. Mari lihat definisi kelas untuk Penyusun HTML kelas:

kelas html.menghuraikan.HTMLParser (*, convert_charrefs = True)

The menukar_charrefs bidang, jika ditetapkan ke True akan menjadikan semua rujukan watak ditukar kepada setara Unicode mereka. Hanya yang skrip / gaya elemen tidak ditukar. Sekarang, kami akan cuba memahami setiap fungsi untuk kelas ini juga untuk lebih memahami apa yang dilakukan oleh setiap fungsi.

Mengkelas kelas HTMLParser

Di bahagian ini, kita akan sub-class HTMLParser class dan akan melihat beberapa fungsi yang dipanggil ketika data HTML diteruskan ke instance kelas. Mari tulis skrip ringkas yang melakukan semua ini:

dari html.parser import HTMLParser
kelas LinuxHTMLParser (HTMLParser):
def handle_starttag (diri, tag, atrs):
cetak ("Tanda mula ditemui:", tag)
def handle_endtag (diri, tag):
cetak ("Tanda akhir ditemui:", tag)
def handle_data (diri, data):
cetak ("Data dijumpai:", data)
parser = LinuxHTMLParser ()
menghuraikan.makanan ("
'

Modul penghuraian HTML Python


')

Inilah yang kita dapat kembali dengan arahan ini:

Subkelas Python HTMLParser

Fungsi HTMLParser

Di bahagian ini, kami akan bekerjasama dengan pelbagai fungsi kelas HTMLParser dan melihat fungsi masing-masing:

dari html.parser import HTMLParser
dari html.entiti import nama2codepoint
kelas LinuxHint_Parse (HTMLParser):
def handle_starttag (diri, tag, atrs):
cetak ("Tanda mula:", teg)
untuk attr dalam attrs:
cetak ("attr:", attr)
def handle_endtag (diri, tag):
cetak ("Tanda akhir:", tag)
def handle_data (diri, data):
cetak ("Data:", data)
def handle_comment (diri, data):
cetak ("Komen:", data)
def handle_entityref (diri, nama):
c = chr (name2codepoint [nama])
cetak ("Dinamakan ent:", c)
def handle_charref (diri, nama):
sekiranya nama.startswith ('x'):
c = chr (int (nama [1:], 16))
lain:
c = chr (int (nama))
cetak ("Num ent:", c)
def handle_decl (diri, data):
cetak ("Decl:", data)
parser = LinuxHint_Parse ()

Dengan pelbagai panggilan, marilah kita memberi makan data HTML yang terpisah untuk contoh ini dan melihat output apa yang dihasilkan oleh panggilan ini. Kita akan mulakan dengan sederhana DOCTYPE tali:

menghuraikan.makanan (''"http: // www.w3.org / TR / html4 / ketat.dtd "> ')

Inilah yang kami dapat dengan panggilan ini:

Rentetan DOCTYPE

Sekarang mari kita mencuba tag gambar dan melihat data yang diekstraknya:

menghuraikan.makanan ('Logo Python')

Inilah yang kami dapat dengan panggilan ini:

Teg gambar HTMLParser

Seterusnya, mari cuba bagaimana tag skrip berkelakuan dengan fungsi Python:

menghuraikan.makanan ('')
menghuraikan.makanan ('')
menghuraikan.suapan ('# python color: green')

Inilah yang kami dapat dengan panggilan ini:

Teg skrip di htmlparser

Akhirnya, kami menyampaikan komen ke bahagian HTMLParser juga:

menghuraikan.makanan (''
'')

Inilah yang kami dapat dengan panggilan ini:

Menghuraikan komen

Kesimpulannya

Dalam pelajaran ini, kami melihat bagaimana kami dapat menguraikan HTML menggunakan kelas HTMLParser Python sendiri tanpa perpustakaan lain. Kita boleh mengubah kod dengan mudah untuk mengubah sumber data HTML menjadi klien HTTP.

Baca lebih banyak catatan berdasarkan Python di sini.

Cara menukar butang tetikus Kiri & Kanan pada PC Windows 10
Sudah menjadi kebiasaan bahawa semua peranti tetikus komputer dirancang secara ergonomik untuk pengguna tangan kanan. Tetapi ada peranti tetikus yang ...
Tiru klik Tetikus dengan melayang menggunakan Mouse Tanpa Klik di Windows 10
Menggunakan tetikus atau papan kekunci dalam keadaan salah penggunaan berlebihan boleh menyebabkan banyak masalah kesihatan, termasuk ketegangan, sind...
Tambahkan isyarat Tetikus ke Windows 10 menggunakan alat percuma ini
Dalam beberapa tahun kebelakangan ini komputer dan sistem operasi telah banyak berkembang. Ada saat ketika pengguna harus menggunakan perintah untuk m...