Python爬虫进阶之Beautiful Soup库详解
Beautiful Soup是Python的一个HTML或XML的解析库,可以实现文档的解析、遍历和修改功能。相比其他解析库,Beautiful Soup具有简单、易学、灵活的特点。
安装Beautiful Soup
可以使用以下命令安装Beautiful Soup库:
pip install beautifulsoup4
解析HTML文档
Beautiful Soup库的主要功能之一是解析HTML文档,可以使用以下代码对HTML文档进行解析:
from bs4 import BeautifulSoup
html_doc = """
<html>
<head>
<title>Python爬虫进阶之Beautiful Soup库详解</title>
</head>
<body>
<h1>Python爬虫进阶之Beautiful Soup库详解</h1>
<p class="desc">Beautiful Soup是Python的一个HTML或XML的解析库,可以实现文档的解析、遍历和修改功能。</p>
<a href="https://www.baidu.com">点击跳转到百度</a>
</body>
</html>
"""
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.prettify())
执行结果:
<html>
<head>
<title>
Python爬虫进阶之Beautiful Soup库详解
</title>
</head>
<body>
<h1>
Python爬虫进阶之Beautiful Soup库详解
</h1>
<p class="desc">
Beautiful Soup是Python的一个HTML或XML的解析库,可以实现文档的解析、遍历和修改功能。
</p>
<a href="https://www.baidu.com">
点击跳转到百度
</a>
</body>
</html>
遍历HTML文档
Beautiful Soup库支持多种遍历方法,包括递归、子节点、兄弟节点等,以下是几种常用的方法。
递归遍历文档树
soup = BeautifulSoup(html_doc, 'html.parser')
for child in soup.recursiveChildGenerator():
print(child)
循环遍历子节点
soup = BeautifulSoup(html_doc, 'html.parser')
for child in soup.body.children:
print(child)
循环遍历兄弟节点
soup = BeautifulSoup(html_doc, 'html.parser')
for sibling in soup.a.next_siblings:
print(sibling)
Beautiful Soup库的高级应用
选择器
Beautiful Soup库支持CSS选择器,使用选取器可以更方便地匹配HTML文档中的元素。
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.select('h1'))
print(soup.select('.desc'))
print(soup.select('a[href="https://www.baidu.com"]'))
修改HTML文档
Beautiful Soup库可以修改HTML文档,例如修改标签内容、属性等。
soup = BeautifulSoup(html_doc, 'html.parser')
soup.h1.string = 'Python爬虫进阶之Beautiful Soup库'
soup.a['href'] = 'https://www.google.com'
print(soup.prettify())
执行结果:
<html>
<head>
<title>
Python爬虫进阶之Beautiful Soup库详解
</title>
</head>
<body>
<h1>
Python爬虫进阶之Beautiful Soup库
</h1>
<p class="desc">
Beautiful Soup是Python的一个HTML或XML的解析库,可以实现文档的解析、遍历和修改功能。
</p>
<a href="https://www.google.com">
点击跳转到百度
</a>
</body>
</html>
以上就是Python爬虫进阶之Beautiful Soup库详解的完整攻略,希望能够对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python爬虫进阶之Beautiful Soup库详解 - Python技术站