本套课在线学习视频(网盘地址,保存到网盘即可免费观看):

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文档数据。