一、快速入門
BS4select是一個基於BeautifulSoup的Python庫,其主要功能是提取HTML或XML中的特定標籤的內容。具體來說,它可以通過CSS Selectors的方式提取標籤內部的內容,例如文字或者鏈接。
在使用之前,需要安裝bs4庫。以下是一個快速入門的例子:
from bs4 import BeautifulSoup html = <html><body><div id="content"><p>Hello World!</p></div></body></html> soup = BeautifulSoup(html, 'html.parser') content = soup.select('#content p')[0].get_text() print(content) # 輸出: Hello World!
以上代碼會在HTML代碼中找到id為「content」的標籤內部的p標籤,並將其內容提取出來。
二、基礎用法
在BS4select中,可以使用select方法來進行標籤內部內容的提取。select方法接收一個CSS Selector作為參數,返回符合條件的標籤的list。
例如,以下代碼中的CSS Selector表示提取id屬性為「content」的div標籤內部的p標籤:
soup.select('#content p')
可以通過get_text()方法獲取標籤內部的文字內容:
soup.select('#content p')[0].get_text()
如果要獲取標籤的屬性,可以使用get方法,例如:
soup.select('a')[0].get('href')
以上代碼可以獲取HTML中第一個a標籤的href屬性。
三、高級用法
在BS4select中,還可以使用一些高級的功能,例如模糊匹配、多重選擇等。
1. 模糊匹配
在CSS Selector中,可以使用如下符號來進行模糊匹配:
- *:匹配任意字符序列
- ^:從開始位置匹配字符串
- $:從結束位置匹配字符串
- ~:選擇某個屬性包含指定詞彙的標籤
例如,以下代碼可以匹配class屬性包含「content」的div標籤內部的所有p標籤:
soup.select('div[class*="content"] p')
以上代碼中,class*=「content」表示「class包含content」的標籤。
2. 多重選擇
在CSS Selector中,可以使用逗號分隔符來進行多重選擇,例如:
soup.select('#content p, a')
以上代碼可以選擇id為「content」的div標籤內部的p標籤以及HTML中所有的a標籤。
3. NavigableString結果集過濾器
BS4select還可以使用NavigableString結果集過濾器,例如:
soup.select('p')[0].find(string='Hello World!')
以上代碼可以選擇HTML中第一個p標籤,並且過濾掉非純文本的結果。
4. limit限制結果數
在BS4select中,可以使用limit參數來限制返回結果的數量,例如:
soup.select('p', limit=1)
以上代碼可以選擇HTML中第一個p標籤。
四、總結
以上就是BS4select的常用用法,可以在Web開發、數據挖掘等多個方面使用。希望本文對你了解BS4select有所幫助。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/192064.html