Bagaimana untuk membuang tag html dalam python

PHPz
Lepaskan: 2023-04-27 16:41:50
asal
2163 orang telah melayarinya

Jika anda kerap berurusan dengan kandungan web, anda mungkin perlu merangkak halaman web dan mengekstrak kandungan teks daripadanya. Walau bagaimanapun, teg dan maklumat gaya dalam kod HTML boleh membuat pemprosesan teks agak sukar. Dalam kes ini, bahasa pengaturcaraan Python menyediakan beberapa fungsi dan perpustakaan yang berguna untuk mengalih keluar tag HTML, membolehkan anda memproses dan menggunakan teks dengan lebih mudah.

Python menyediakan dua perpustakaan yang biasa digunakan untuk mengalih keluar teg HTML: semula dan BeautifulSoup. Di sini, kita akan belajar cara mengalih keluar tag HTML menggunakan kedua-dua perpustakaan ini.

Gunakan perpustakaan semula

Pustaka semula (ungkapan biasa) Python mempunyai keupayaan pemprosesan rentetan yang kuat. Kami boleh menggunakan beberapa kaedah pustaka ini untuk mengalih keluar teg HTML. Secara khusus, kita boleh menggunakan fungsi re.sub() untuk menggantikan teg HTML. Mari lihat contoh:

import re

def remove_tags(text):
    TAG_RE = re.compile(r'<[^>]+>')
    return TAG_RE.sub('', text)

html = '<html><head><title>Test</title></head><body><h1>Parse me!</h1></body></html>'
print(remove_tags(html))
Salin selepas log masuk

Output:

Test Parse me!
Salin selepas log masuk
Salin selepas log masuk

Dalam kod di atas, fungsi re.compile() digunakan untuk mencipta objek ungkapan biasa menggunakan '< 1+>' Ungkapan biasa sepadan dengan tag HTML. Kami kemudian menghantar objek ungkapan biasa ini sebagai parameter kepada fungsi re.sub(), yang menggantikan semua teg yang sepadan dengan rentetan kosong. Akhir sekali, kami memanggil fungsi dengan teks dengan tag HTML dialih keluar.

Walaupun mungkin mencukupi untuk menggunakan perpustakaan semula untuk memproses teks HTML yang ringkas, jika anda memproses teks HTML yang kompleks, anda akan mendapati bahawa apabila anda mula mempertimbangkan untuk memproses gaya CSS dan skrip JavaScript, Ia menjadi lebih sukar untuk berurusan. Dalam kes ini, anda boleh menggunakan perpustakaan BeautifulSoup.

Menggunakan perpustakaan BeautifulSoup

Pustaka BeautifulSoup menjadikannya lebih mudah untuk memproses teks HTML dan ia lebih fleksibel daripada pustaka semula. BeautifulSoup membantu anda menghuraikan teks HTML dan membolehkan anda memilih elemen tertentu seperti teg, kelas, dsb. Anda boleh menggunakan ini untuk mengalih keluar semua teg dan kemudian mengekstrak kandungan teks.

Berikut ialah contoh:

from bs4 import BeautifulSoup

def remove_tags(text):
    soup = BeautifulSoup(text, 'html.parser')
    return soup.get_text()

html = '<html><head><title>Test</title></head><body><h1>Parse me!</h1></body></html>'
print(remove_tags(html))
Salin selepas log masuk

Output:

Test Parse me!
Salin selepas log masuk
Salin selepas log masuk

Dalam kod di atas, kami menghantar teks HTML ke fungsi BeautifulSoup() untuk menghurai. Kemudian, gunakan kaedah soup.get_text() untuk mengekstrak kandungan teks sambil mengabaikan teg HTML.

Ringkasan

Sama ada anda menggunakan perpustakaan semula atau perpustakaan BeautifulSoup, Python menyediakan banyak kaedah untuk mengalih keluar teg HTML. Jika anda berurusan dengan teks HTML mudah, gunakan perpustakaan semula. Untuk teks HTML yang lebih kompleks, gunakan perpustakaan BeautifulSoup, yang akan menjadikan pemprosesan lebih mudah. Mana-mana kaedah yang anda pilih, anda harus biasa dengan ungkapan biasa dan memahami sintaks pustaka pilihan anda.


  1. >

Atas ialah kandungan terperinci Bagaimana untuk membuang tag html dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan