Cara Mengikis Kandungan Halaman Web yang Boleh Dilihat Dengan Berkesan
Mengikis web melibatkan pengekstrakan data tertentu daripada halaman web, tetapi boleh mencabar untuk mengehadkan hasil kepada teks yang kelihatan sahaja. BeautifulSoup, perpustakaan mengikis web yang popular, memudahkan proses ini.
Memahami Masalah
Untuk mengikis teks yang boleh dilihat, adalah penting untuk mengecualikan elemen seperti skrip (
Penyelesaian dengan BeautifulSoup
Berikut ialah penyelesaian mudah menggunakan kaedah findAll() BeautifulSoup dan penapis tersuai:
from bs4 import BeautifulSoup from bs4.element import Comment from urllib.request import urlopen 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 " ".join(t.strip() for t in visible_texts) html = urlopen('http://www.nytimes.com/2009/12/21/us/21storm.html').read() print(text_from_html(html))
Penjelasan
The kod:
Atas ialah kandungan terperinci Bagaimana untuk mengekstrak kandungan halaman web yang boleh dilihat menggunakan BeautifulSoup?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!