Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk mengekstrak kandungan halaman web yang boleh dilihat menggunakan BeautifulSoup?

Bagaimana untuk mengekstrak kandungan halaman web yang boleh dilihat menggunakan BeautifulSoup?

Mary-Kate Olsen
Lepaskan: 2024-11-25 03:27:11
asal
538 orang telah melayarinya

How to Extract Visible Webpage Content Using BeautifulSoup?

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 ( ), ulasan (), CSS (), dan lain-lain kandungan tidak kelihatan.

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))
Salin selepas log masuk

Penjelasan

The kod:

  • Mentakrifkan fungsi tag_visible() untuk mengecualikan teg dan ulasan yang tidak diingini.
  • Menggunakan penapis() untuk menggunakan fungsi tag_visible() pada semua elemen teks (teks) yang terdapat dalam objek BeautifulSoup.
  • Menyertai teks yang boleh dilihat menjadi satu rentetan.
  • Mengambil HTML URL yang ditentukan menggunakan urlopen().

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!

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