如何有效地抓取可見網頁內容
網頁抓取涉及從網頁中提取特定數據,但限制結果可能具有挑戰性僅顯示可見文字。 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:
以上是如何使用BeautifulSoup擷取可見網頁內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!