使用BeautifulSoup解析HTML结构
BeautifulSoup是一个强大的HTML/XML解析库,它能够将复杂的HTML文档转换成一个树形结构, 让我们可以轻松提取需要的数据。就像一个智能的网页阅读器,能够准确找到我们需要的信息。
# 安装BeautifulSoup
pip install beautifulsoup4
pip install lxml
# 基础使用
from bs4 import BeautifulSoup
html = "<html><body><h1>标题</h1></body></html>"
soup = BeautifulSoup(html, 'lxml')
print(soup.h1.text) # 输出:标题
查找第一个匹配的元素
soup.find('div', class_='content')
查找所有匹配的元素
soup.find_all('a', href=True)
使用CSS语法选择元素
soup.select('div.article > h2')
提取标签属性值
link.get('href')
小美开了一家网店,需要了解竞争对手的商品信息。她发现某电商网站的商品页面结构很规律, 于是决定用BeautifulSoup来提取商品名称、价格和评分信息。
<div class="product"> <h3 class="name">iPhone 15</h3> <span class="price">¥5999</span> <div class="rating">4.8</div> </div>
soup = BeautifulSoup(html, 'lxml')
products = soup.find_all('div', class_='product')
for product in products:
name = product.find('h3', class_='name').text
price = product.find('span', class_='price').text
rating = product.find('div', class_='rating').text
print(f"{name} - {price} - 评分:{rating}")
小美的收获:BeautifulSoup让我能够精确提取每个商品的关键信息, 现在我每天只需要运行一次程序,就能获取最新的市场数据!
解析简单的HTML,提取所有段落标签的文本内容。
# 目标:使用BeautifulSoup解析HTML中的<p>标签
从HTML中提取所有超链接的href属性值。
# 提示:使用find_all('a')和get('href')
使用CSS选择器提取特定class的元素内容。
# 目标:soup.select('.article-title')
解析嵌套的HTML结构,提取多层级的数据。
# 提示:处理div > ul > li的嵌套结构
从HTML表格中提取行和列的数据。
# 目标:解析<table>标签中的数据
提取网页中所有图片的src属性。
# 提示:find_all('img')和get('src')
清理提取的文本内容,去除多余空格和特殊字符。
# 提示:使用strip()和正则表达式
将解析的数据组织成字典或列表格式。
# 目标:将数据转换为[{'name': '...', 'price': '...'}]