全面剖析大模型 圖解大模型:生成式AI原理與實戰 大語言模型大模型應用開發Transformer DeepSeek模型原理開發深度學習 圖靈出品
大模型強化學習詳解 大模型算法:強化學習、微調與對齊(全彩)詳解強化學習 RLHF GRPO DPO SFT CoT DeepSeek蒸餾 微調與對齊 效果優化及其實踐
大模型圖書三劍客之 人工智能的底層邏輯 DeepSeek的邏輯 DeepSeek教程 閱讀狂歡節
大模型語言模型理論全掌握 大規模語言模型:從理論到實踐(第2版)詳解LLM 預訓練 指令微調 SFT 強化學習MoE 多模態 智能體 RAG 大模型效率優化DeepSeek推理模型 評估
AI大廠大模型面試寶典 百面大模型 大模型應用開發LLM提示工程師大模型面試題deepseek應用開發深度學習機器學習 圖靈出品
AI時代已至,必須學起來了 人工智能:現代方法(第4版)復旦教授魏忠鈺老師推薦 deepseek教程(異步圖書出品)
Beautiful Soup (bs4) 是一個用于解析 HTML 和 XML 文檔的 Python 庫,常用于網頁抓取(Web Scraping)。它能將復雜的文檔轉換為樹形結構,并提供簡單的方法導航、搜索和修改文檔內容。
核心特性
-
自動編碼處理
自動將輸入文檔轉換為 Unicode 輸出為 UTF-8,無需擔心編碼問題。 -
靈活的解析器支持
支持多種解析器:html.parser
(Python 內置)lxml
(速度快,需額外安裝)html5lib
(高容錯性,生成標準 HTML5)
-
直觀的文檔導航
提供類似 DOM 的操作方式,支持標簽名、屬性、CSS 選擇器等搜索。
安裝方法
pip install beautifulsoup4 requests # 通常配合 requests 庫使用
基礎用法示例
from bs4 import BeautifulSoup
import requests# 1. 獲取網頁內容
url = "https://example.com"
response = requests.get(url)
html_content = response.text# 2. 創建 BeautifulSoup 對象
soup = BeautifulSoup(html_content, "html.parser") # 使用內置解析器# 3. 提取數據示例
# 獲取標題
title = soup.title.string
print("頁面標題:", title)# 查找所有鏈接
for link in soup.find_all("a"):print("鏈接:", link.get("href"))# 通過 CSS 類查找
results = soup.select(".main-content") # 選擇 class="main-content" 的元素
for div in results:print("內容塊:", div.text.strip()[:50] + "...") # 截取前50字符
常用方法速查
方法 | 描述 |
---|---|
soup.find(tag) | 返回第一個匹配的標簽 |
soup.find_all(tag) | 返回所有匹配的標簽列表 |
soup.select(css_selector) | 用 CSS 選擇器查找元素 |
tag.get(attr) | 獲取標簽屬性值(如 href , src ) |
tag.text | 獲取標簽內的文本(不含子標簽) |
tag.contents | 獲取子節點列表 |
tag.parent | 獲取父節點 |
處理復雜場景
# 查找特定屬性的元素
soup.find_all("div", class_="header", id="top") # class 是保留字,需加下劃線# 鏈式查找
first_link = soup.find("div", {"id": "nav"}).find("a")# 提取嵌套數據
for item in soup.select("ul.products > li"):name = item.find("h3").textprice = item.select(".price")[0].textprint(f"{name}: {price}")
注意事項
- 遵守 robots.txt:抓取前檢查目標網站的爬蟲協議。
- 設置請求頭:模擬瀏覽器訪問避免被屏蔽:
headers = {"User-Agent": "Mozilla/5.0"} response = requests.get(url, headers=headers)
- 錯誤處理:網絡請求和解析需添加異常捕獲:
try:# 解析代碼 except AttributeError:# 處理標簽不存在的情況
進階學習
- 官方文檔:Beautiful Soup Documentation
- 實戰項目:商品價格監控、新聞聚合、搜索引擎爬蟲
通過 Beautiful Soup,你可以高效地從網頁中提取結構化數據,是 Python 數據采集的核心工具之一!