Beautifulsoup的用法

本文介绍了一个使用Python的BeautifulSoup库解析HTML文档的例子。通过这个示例,读者可以了解到如何提取特定标签及其属性,例如获取<title>标签的内容、查找带有特定属性的<p>标签以及获取这些标签内的文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#coding:utf-8
from bs4 import BeautifulSoup
import re

doc = ['<html><head><title>Page title</title></head>',
       '<body><p id="firstpara" align="center">This is paragraph <b>one</b>.</p>',
       '<p id="secondpara" align="blah">This is paragraph <b>two</b>.</p>',
       '</html>']
soup = BeautifulSoup(''.join(doc))

# <html>
#  <head>
#   <title>
#    Page title
#   </title>
#  </head>
#  <body>
#   <p id="firstpara" align="center">
#    This is paragraph
#    <b>
#     one
#    </b>
#    .
#   </p>
#   <p id="secondpara" align="blah">
#    This is paragraph
#    <b>
#     two
#    </b>
#    .
#   </p>
#  </body>
# </html>
tieleTag = soup.html.head.title

print tieleTag          
#<title>Page title</title>
print tieleTag.string  
#Page title
print len(soup('p'))                     
#获取p标签的个数
print soup.find('p',align="center")     
#获取p标签align属性为center的语句
print soup('p',align="center")[0]['id']  
#获取解析后第一个p标签的id
print soup.find('p').b.string   #查找p标签的b标签的内容
print soup('p')[1].b.string     #查找p标签的第二个b标签的内容
tieleTag['id'] = 'theTitle'     #修改soup

soup.p.extract()                #移除第一个p标签

print soup

BeautifulSoup 是一个用于解析 HTML 和 XML 文档的强大工具,适用于从网页中提取数据或修改文档结构。以下是一些基本用法和功能: ### 安装 在使用 BeautifulSoup 之前,需要先安装它以及一个合适的解析器。最常用的解析器是 `lxml` 或者 Python 内置的 `html.parser`。 ```bash pip install beautifulsoup4 lxml ``` ### 导入 导入 BeautifulSoup 库并选择一个解析器来解析文档。 ```python from bs4 import BeautifulSoup # 假设我们有一个HTML字符串 html_doc = """ <html><head><title>The Dormouse's story</title></head> <body> <p class="title"><b>The Dormouse's story</b></p> <p class="story">Once upon a time there were three little sisters; and their names were <a href="http://example.com/elsie" class="sister" id="link1">Elsie</a>, <a href="http://example.com/lacie" class="sister" id="link2">Lacie</a> and <a href="http://example.com/tillie" class="sister" id="link3">Tillie</a>; and they lived at the bottom of a well.</p> <p class="story">...</p> """ # 使用lxml解析器创建BeautifulSoup对象 soup = BeautifulSoup(html_doc, 'lxml') ``` ### 解析文档 一旦有了 `BeautifulSoup` 对象,就可以开始解析文档了。 #### 获取标签 可以通过直接访问标签名来获取第一个匹配的标签。 ```python print(soup.title) # 输出<title>标签的内容 ``` #### 获取属性 可以获取特定标签的属性值。 ```python print(soup.a['href']) # 输出第一个<a>标签的href属性 ``` #### 查找所有匹配的标签 使用 `find_all()` 方法查找所有匹配的标签。 ```python for link in soup.find_all('a'): print(link.get('href')) # 输出所有<a>标签的href属性 ``` #### 搜索文档树 可以使用多种参数来搜索文档树,比如通过类名、ID等。 ```python print(soup.find(id="link3")) # 输出id为link3的标签 ``` #### 提取文本 可以从文档中提取纯文本内容。 ```python print(soup.get_text()) # 输出文档中的所有文本内容 ``` ### 修改文档 除了提取信息外,还可以修改文档结构。 ```python tag = soup.p tag.name = "paragraph" # 将<p>标签的名字改为paragraph print(tag) ``` ### 遍历文档树 BeautifulSoup 提供了多种方法来遍历文档树。 ```python for child in soup.head.children: print(child) # 输出<head>标签下的所有子节点 ``` 以上就是 BeautifulSoup 的一些基本用法和功能。这个库非常适合处理不规则或有错误的 HTML 文档,并且配合 urllib 或 requests 等库使用效果更佳。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值