本套课在线学习视频(网盘地址,保存到网盘即可免费观看):
https://pan.quark.cn/s/d9d6fdbfed6d
Beautiful Soup是一个强大的Python库,用于从HTML和XML文件中提取数据。它支持使用CSS选择器来高效地查找和操作文档中的元素。本文将详细介绍如何在Beautiful Soup中使用CSS选择器进行元素查找,并通过实例演示其应用。
00:00 - Beautiful Soup库中CSS选择器的应用
查找所有<TR>
标签
要查找HTML文档中的所有<TR>
标签,可以直接使用标签名作为选择器。
from bs4 import BeautifulSoup
html_content = """
<table>
<tr><td>Row 1, Cell 1</td><td>Row 1, Cell 2</td></tr>
<tr><td>Row 2, Cell 1</td><td>Row 2, Cell 2</td></tr>
</table>
"""
soup = BeautifulSoup(html_content, 'html.parser')
tr_tags = soup.select('tr')
for tr in tr_tags:
print(tr.text)
查找带有特定class
属性的标签
若需选取具有特定class
属性的标签,则可在选择器中加入.
后跟该类名。
html_content = """
<div class="container">
<p class="myClass">Paragraph 1</p>
<p>Paragraph 2</p>
</div>
"""
soup = BeautifulSoup(html_content, 'html.parser')
my_class_tags = soup.select('.myClass')
for tag in my_class_tags:
print(tag.text)
02:00 - CSS选择器与网页元素查找
通过ID选择元素
要选取具有特定ID的元素,可以使用#id
选择器。
html_content = """
<div id="main">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
"""
soup = BeautifulSoup(html_content, 'html.parser')
main_div = soup.select('#main')
print(main_div[0].text)
属性值匹配
可以通过属性值匹配来选取元素。
html_content = """
<div>
<a href="http://example.com">Link 1</a>
<a href="http://another-example.com">Link 2</a>
</div>
"""
soup = BeautifulSoup(html_content, 'html.parser')
links = soup.select('a[href="http://example.com"]')
for link in links:
print(link.text)
标签层级关系
利用标签层级关系进行选取。
html_content = """
<div class="container">
<ul>
<li>Item 1</li>
<li>Item 2</li>
</ul>
</div>
"""
soup = BeautifulSoup(html_content, 'html.parser')
items = soup.select('.container ul li')
for item in items:
print(item.text)
综合示例
以下是一个综合示例,展示了如何使用CSS选择器进行复杂查询:
html_content = """
<div class="container">
<ul id="menu">
<li class="item">Home</li>
<li class="item">About</li>
<li class="item">Contact</li>
</ul>
</div>
"""
soup = BeautifulSoup(html_content, 'html.parser')
menu_items = soup.select('.container #menu .item')
for item in menu_items:
print(item.text)
通过这些示例代码,您可以更好地理解如何在Beautiful Soup中使用CSS选择器进行元素查找,从而高效地处理和解析HTML文档数据。