Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk mengekstrak hanya teks yang boleh dilihat dari halaman web menggunakan BeautifulSoup?
Pengekstrakan Teks Halaman Web dengan BeautifulSoup: Mengekstrak Teks Boleh Nampak Secara Eksklusif
Pengikisan web selalunya melibatkan pengambilan semula kandungan teks tertentu daripada halaman web. Menggunakan BeautifulSoup, pustaka penghuraian HTML yang digunakan secara meluas, anda mungkin menghadapi cabaran untuk mengekstrak hanya teks yang boleh dilihat pada halaman web, tidak termasuk elemen yang tidak diingini seperti skrip, ulasan dan CSS.
Mengenal pasti Teks Nampak
Untuk menentukan sama ada elemen HTML tertentu mengandungi teks yang boleh dilihat, anda boleh menggunakan fungsi tag_visible. Fungsi ini menyemak sama ada elemen induk elemen sasaran berada dalam set tertentu teg yang dikecualikan (cth., gaya, skrip, kepala) atau jika elemen sasaran ialah ulasan. Jika mana-mana syarat dipenuhi, fungsi mengembalikan Palsu, menunjukkan elemen itu tidak dianggap kelihatan.
Mengekstrak Teks Kelihatan
Untuk mengekstrak teks kelihatan daripada halaman web, ikut langkah berikut:
Contoh Penggunaan
Kod di bawah menunjukkan cara menggunakan teknik ini untuk mengekstrak teks yang boleh dilihat daripada halaman web:
from bs4 import BeautifulSoup from bs4.element import Comment import urllib.request def tag_visible(element): if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']: return False if isinstance(element, Comment): return False return True def text_from_html(body): soup = BeautifulSoup(body, 'html.parser') texts = soup.findAll(text=True) visible_texts = filter(tag_visible, texts) return u" ".join(t.strip() for t in visible_texts) html = urllib.request.urlopen('http://www.nytimes.com/2009/12/21/us/21storm.html').read() print(text_from_html(html))
Dengan memanfaatkan pendekatan ini, anda boleh mengikis teks yang boleh dilihat dengan berkesan daripada halaman web, tidak termasuk kandungan yang tidak berkaitan daripada skrip, ulasan dan elemen tersembunyi lain.
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak hanya teks yang boleh dilihat dari halaman web menggunakan BeautifulSoup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!