Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengekstrak Teks Bersih daripada Fail HTML dalam Python Semasa Mengelakkan Perangkap Ungkapan Biasa?

Bagaimanakah Saya Boleh Mengekstrak Teks Bersih daripada Fail HTML dalam Python Semasa Mengelakkan Perangkap Ungkapan Biasa?

Barbara Streisand
Lepaskan: 2024-11-28 19:53:14
asal
717 orang telah melayarinya

How Can I Extract Clean Text from HTML Files in Python While Avoiding the Pitfalls of Regular Expressions?

Mengekstrak Teks Bersih daripada Fail HTML dengan Python

Apabila ingin mengekstrak teks daripada fail HTML menggunakan Python, adalah penting untuk mempertimbangkan keteguhan dan ketepatan . Walaupun ungkapan biasa selalunya boleh melakukan tugas itu, mereka mungkin bergelut dengan HTML yang dibentuk dengan buruk.

Untuk penyelesaian yang lebih mantap, perpustakaan seperti Beautiful Soup biasanya disyorkan. Walau bagaimanapun, pengguna mungkin menghadapi cabaran dengan teks yang tidak diingini, seperti sumber JavaScript dan tafsiran entiti HTML yang salah.

Untuk menangani isu ini, pendekatan yang lebih komprehensif diperlukan.

html2text: Penyelesaian yang Menjanjikan

Satu penyelesaian yang menjanjikan ialah html2text. Pustaka ini mengendalikan entiti HTML dengan betul dan mengabaikan JavaScript. Walau bagaimanapun, ia menghasilkan Markdown dan bukannya teks biasa, memerlukan pemprosesan tambahan untuk menukarnya.

Memanfaatkan BeautifulSoup dan Kod Tersuai

Pendekatan alternatif ialah menggunakan BeautifulSoup bersama-sama dengan kod tersuai. Dengan mengalih keluar elemen yang tidak diingini (cth., skrip dan gaya) dan memanfaatkan kaedah get_text(), anda boleh mendapatkan perwakilan teks yang bersih tanpa bergantung semata-mata pada ungkapan biasa.

Berikut ialah coretan kod Python yang menunjukkan pendekatan ini:

from urllib.request import urlopen
from bs4 import BeautifulSoup

url = "http://news.bbc.co.uk/2/hi/health/2284783.stm"
html = urlopen(url).read()
soup = BeautifulSoup(html, features="html.parser")

# Remove script and style elements
for script in soup(["script", "style"]):
    script.extract()

# Extract text
text = soup.get_text()

# Additional processing to remove unwanted whitespace and split headlines into separate lines
lines = (line.strip() for line in text.splitlines())
chunks = (phrase.strip() for line in lines for phrase in line.split("  "))
text = '\n'.join(chunk for chunk in chunks if chunk)

print(text)
Salin selepas log masuk

Pendekatan ini membolehkan anda mengekstrak teks yang bersih dan boleh dibaca manusia daripada fail HTML, tanpa kelemahan ungkapan biasa atau perpustakaan yang mungkin tidak mengendalikan semua senario dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekstrak Teks Bersih daripada Fail HTML dalam Python Semasa Mengelakkan Perangkap Ungkapan Biasa?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan