簡介
BeautifulSoup是一個高效的網頁解析庫,可以從 HTML 或 XML 文件中提取數據。
beautifulsoup支持不同的解析器,比如,對HTML解析,對XML解析,對HTML5解析。一般情況下,我們用的比較多的是 lxml 解析器。
當前最新的 Beautiful Soup 版本為4.4.0,Beautiful Soup 3 當前已停止維護。
安裝
pip install beautifulsoup4
使用時導入:
from bs4 import BeautifulSoup
使用
編寫一個test.html
<!DOCTYPE html> <html> <head> <title>BeautifulSoup入門</title> </head> <body> <p>你好</p> <a href="www.baidu.com">百度一下</a>
<p id='content'>BeautifulSoup是一個高效的網頁解析庫,可以從 HTML 或 XML 文件中提取數據。</p> </body> </html>
接着將 html 的源代碼傳給 BeautifulSoup:
from bs4 import BeautifulSoup soup = BeautifulSoup(open('test.html', encoding='utf-8'),'lxml')
后面都是從soup這個對象獲取我們要的內容。
獲取標題的內容
>>> print(soup.title.string) BeautifulSoup入門
獲取 p 標簽里面的內容
>>> print(soup.p.string) 你好
獲取 title 的父級標簽
>>> print(soup.title.parent.name) head
獲取超鏈接
>>> print(soup.a) <a href="www.baidu.com">百度一下</a>
獲取所有超鏈接
>>> print(soup.find_all('a')) [<a href="www.baidu.com">百度一下</a>]
獲取 id 為 content 的標簽
>>> print(soup.find(id="content")) <p id="content">BeautifulSoup是一個高效的網頁解析庫,可以從 HTML 或 XML 文件中提取數據。</p>
獲取網頁中所有的內容
>>> print(soup.get_text()) BeautifulSoup入門 你好 百度一下 BeautifulSoup是一個高效的網頁解析庫,可以從 HTML 或 XML 文件中提取數據。
除了find方法之外,如果你對css比較熟悉,也可以使用 select 方法
print(soup.select("title")) print(soup.select("body p")) print(soup.select("body > #content"))
參考鏈接: