
- Beautiful Soup 教程
- Beautiful Soup - 首頁
- Beautiful Soup - 概述
- Beautiful Soup - 網頁抓取
- Beautiful Soup - 安裝
- Beautiful Soup - 解析頁面
- Beautiful Soup - 物件型別
- Beautiful Soup - 檢查資料來源
- Beautiful Soup - 抓取 HTML 內容
- Beautiful Soup - 透過標籤導航
- Beautiful Soup - 透過 ID 查詢元素
- Beautiful Soup - 透過類查詢元素
- Beautiful Soup - 透過屬性查詢元素
- Beautiful Soup - 搜尋樹
- Beautiful Soup - 修改樹
- Beautiful Soup - 解析文件的一部分
- Beautiful Soup - 查詢元素的所有子元素
- Beautiful Soup - 使用 CSS 選擇器查詢元素
- Beautiful Soup - 查詢所有註釋
- Beautiful Soup - 從 HTML 中抓取列表
- Beautiful Soup - 從 HTML 中抓取段落
- BeautifulSoup - 從 HTML 中抓取連結
- Beautiful Soup - 獲取所有 HTML 標籤
- Beautiful Soup - 獲取標籤內的文字
- Beautiful Soup - 查詢所有標題
- Beautiful Soup - 提取標題標籤
- Beautiful Soup - 提取電子郵件 ID
- Beautiful Soup - 抓取巢狀標籤
- Beautiful Soup - 解析表格
- Beautiful Soup - 選擇第 n 個子元素
- Beautiful Soup - 透過標籤內的文字搜尋
- Beautiful Soup - 刪除 HTML 標籤
- Beautiful Soup - 刪除所有樣式
- Beautiful Soup - 刪除所有指令碼
- Beautiful Soup - 刪除空標籤
- Beautiful Soup - 刪除子元素
- Beautiful Soup - find 與 find_all 的區別
- Beautiful Soup - 指定解析器
- Beautiful Soup - 比較物件
- Beautiful Soup - 複製物件
- Beautiful Soup - 獲取標籤位置
- Beautiful Soup - 編碼
- Beautiful Soup - 輸出格式化
- Beautiful Soup - 美化輸出
- Beautiful Soup - NavigableString 類
- Beautiful Soup - 將物件轉換為字串
- Beautiful Soup - 將 HTML 轉換為文字
- Beautiful Soup - 解析 XML
- Beautiful Soup - 錯誤處理
- Beautiful Soup - 故障排除
- Beautiful Soup - 移植舊程式碼
- Beautiful Soup - 函式參考
- Beautiful Soup - contents 屬性
- Beautiful Soup - children 屬性
- Beautiful Soup - string 屬性
- Beautiful Soup - strings 屬性
- Beautiful Soup - stripped_strings 屬性
- Beautiful Soup - descendants 屬性
- Beautiful Soup - parent 屬性
- Beautiful Soup - parents 屬性
- Beautiful Soup - next_sibling 屬性
- Beautiful Soup - previous_sibling 屬性
- Beautiful Soup - next_siblings 屬性
- Beautiful Soup - previous_siblings 屬性
- Beautiful Soup - next_element 屬性
- Beautiful Soup - previous_element 屬性
- Beautiful Soup - next_elements 屬性
- Beautiful Soup - previous_elements 屬性
- Beautiful Soup - find 方法
- Beautiful Soup - find_all 方法
- Beautiful Soup - find_parents 方法
- Beautiful Soup - find_parent 方法
- Beautiful Soup - find_next_siblings 方法
- Beautiful Soup - find_next_sibling 方法
- Beautiful Soup - find_previous_siblings 方法
- Beautiful Soup - find_previous_sibling 方法
- Beautiful Soup - find_all_next 方法
- Beautiful Soup - find_next 方法
- Beautiful Soup - find_all_previous 方法
- Beautiful Soup - find_previous 方法
- Beautiful Soup - select 方法
- Beautiful Soup - append 方法
- Beautiful Soup - extend 方法
- Beautiful Soup - NavigableString 方法
- Beautiful Soup - new_tag 方法
- Beautiful Soup - insert 方法
- Beautiful Soup - insert_before 方法
- Beautiful Soup - insert_after 方法
- Beautiful Soup - clear 方法
- Beautiful Soup - extract 方法
- Beautiful Soup - decompose 方法
- Beautiful Soup - replace_with 方法
- Beautiful Soup - wrap 方法
- Beautiful Soup - unwrap 方法
- Beautiful Soup - smooth 方法
- Beautiful Soup - prettify 方法
- Beautiful Soup - encode 方法
- Beautiful Soup - decode 方法
- Beautiful Soup - get_text 方法
- Beautiful Soup - diagnose 方法
- Beautiful Soup 有用資源
- Beautiful Soup - 快速指南
- Beautiful Soup - 有用資源
- Beautiful Soup - 討論
Beautiful Soup - 透過類查詢元素
CSS(層疊樣式表)是用於設計 HTML 元素外觀的工具。CSS 規則控制 HTML 元素的不同方面,例如大小、顏色、對齊等。應用樣式比定義 HTML 元素屬性更有效。您可以將樣式規則應用於每個 HTML 元素。與其單獨地將樣式應用於每個元素,不如使用 CSS 類將類似的樣式應用於 HTML 元素組,以實現統一的網頁外觀。在 BeautifulSoup 中,可以找到使用 CSS 類設定樣式的標籤。在本章中,我們將使用以下方法搜尋指定 CSS 類的元素:
- find_all() 和 find() 方法
- select() 和 select_one() 方法
CSS 中的類
CSS 中的類是指定與外觀相關的不同特徵(例如字型型別、大小和顏色、背景顏色、對齊等)的屬性的集合。在宣告類時,類名字首為點 (.)。
.class { css declarations; }
CSS 類可以內聯定義,也可以在需要包含在 HTML 指令碼中的單獨 css 檔案中定義。CSS 類的典型示例如下:
.blue-text { color: blue; font-weight: bold; }
您可以藉助以下 BeautifulSoup 方法搜尋使用特定類樣式定義的 HTML 元素。
在本節中,我們將使用以下 HTML 頁面:
<html> <head> <title>TutorialsPoint</title> </head> <body> <h2 class="heading">Departmentwise Employees</h2> <ul> <li class="mainmenu">Accounts</li> <ul> <li class="submenu">Anand</li> <li class="submenu">Mahesh</li> </ul> <li class="mainmenu">HR</li> <ul> <li class="submenu">Rani</li> <li class="submenu">Ankita</li> </ul> </ul> </body> </html>
使用 find() 和 find_all()
要搜尋標籤中使用的某個 CSS 類,請使用 Tag 物件的 attrs 屬性,如下所示:
示例
from bs4 import BeautifulSoup fp = open("index.html") soup = BeautifulSoup(fp, 'html.parser') obj = soup.find_all(attrs={"class": "mainmenu"}) print (obj)
輸出
[<li class="mainmenu">Accounts</li>, <li class="mainmenu">HR</li>]
結果是所有具有 mainmenu 類的元素列表
要獲取 attrs 屬性中提到的任何 CSS 類的元素列表,請將 find_all() 語句更改為:
obj = soup.find_all(attrs={"class": ["mainmenu", "submenu"]})
這將生成所有使用上面任何 CSS 類的元素列表。
[ <li class="mainmenu">Accounts</li>, <li class="submenu">Anand</li>, <li class="submenu">Mahesh</li>, <li class="mainmenu">HR</li>, <li class="submenu">Rani</li>, <li class="submenu">Ankita</li> ]
使用 select() 和 select_one()
您還可以使用 select() 方法,並將 CSS 選擇器作為引數。點 (.) 後跟類名稱用作 CSS 選擇器。
示例
from bs4 import BeautifulSoup fp = open("index.html") soup = BeautifulSoup(fp, 'html.parser') obj = soup.select(".heading") print (obj)
輸出
[<h2 class="heading">Departmentwise Employees</h2>]
select_one() 方法返回找到的第一個具有給定類的元素。
obj = soup.select_one(".submenu")
廣告