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)
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!