如何使用BeautifulSoup擷取可見網頁內容?

Mary-Kate Olsen
發布: 2024-11-25 03:27:11
原創
447 人瀏覽過

How to Extract Visible Webpage Content Using BeautifulSoup?

如何有效地抓取可見網頁內容

網頁抓取涉及從網頁中提取特定數據,但限制結果可能具有挑戰性僅顯示可見文字。 BeautifulSoup,一個受歡迎的網頁抓取庫,簡化了這個過程。

理解問題

要抓取可見文本,排除腳本等元素(<script>)至關重要。 )、註解(<!-- -->)、CSS (<style>) 和其他不可見</script>

BeautifulSoup 的解

這是一個使用BeautifulSoup的findAll()方法和自訂過濾器的簡單解決方案:

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))
登入後複製

解釋

code:

  • 定義函數_visible() 來排除不需要的標籤和註釋。
  • 使用 filter() 將 tag_visible() 函數套用至在下列位置找到的所有文字元素(文字) BeautifulSoup 物件。
  • 將可見文字合併為一個string.
  • 使用 urlopen() 取得指定 URL 的 HTML。

以上是如何使用BeautifulSoup擷取可見網頁內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板