
BeautifulSoup 的构造方法,就能得到一个文档的对象,;from bs4 import BeautifulSoup
soup = BeautifulSoup(open("index.html"))
soup = BeautifulSoup("<html>data</html>")Beautiful Soup将HTML文档转换成一个树形结构,每个节点都是Python对象;Tag , NavigableString , BeautifulSoup , Comment .XML或HTML原生文档中的tag相同;# -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2023/2/14
# 文件名称:bs02.py
# 作用:BeautifulSoup的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson
from bs4 import BeautifulSoup
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>', 'html.parser')
tag = soup.b
print(type(tag))<class 'bs4.element.Tag'>name和attributes.name 来获取tag的名字;print(tag.name)btag.name = "blockquote"
print(tag)<blockquote class="boldest">Extremely bold</blockquote>tag可能有很多个属性. tag <b class="boldest"> 有一个 “class” 的属性,值为 “boldest” . tag的属性的操作方法与字典相同:print(tag["class"])['boldest'].attrs :print(tag.attrs){'class': ['boldest']}tag的属性可以被添加,删除或修改. 操作方法与字典一样:tag['class'] = 'verybold'
tag['id'] = 1
print(tag)
del tag['class']
del tag['id']
print(tag)
print(tag.get('class'))<blockquote class="verybold" id="1">Extremely bold</blockquote>
<blockquote>Extremely bold</blockquote>
Noneclass (一个tag可以有多个CSS的class).;rel , rev , accept-charset , headers , accesskey .;Beautiful Soup中多值属性的返回类型是list:# 多值属性
css_soup = BeautifulSoup('<p class="body strikeout"></p>', 'html.parser')
print(css_soup.p['class'])
css_soup = BeautifulSoup('<p class="body"></p>', 'html.parser')
print(css_soup.p['class'])['body', 'strikeout']
['body']NavigableString 类来包装tag中的字符串;# NavigableString类
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>', 'html.parser')
print(tag.string)
print(type(tag.string))Extremely bold
<class 'bs4.element.NavigableString'>replace_with() 方法替换tag中的字符串:# replace_with() 方法
tag.string.replace_with("No longer bold")
print(tag)<blockquote>No longer bold</blockquote>BeautifulSoup 对象表示的是一个文档的全部内容;遍历文档树 和 搜索文档树 中描述的大部分的方法;“[document]” 的特殊属性:# BeautifulSoup类
# [document]属性
print(soup.name)Comment 对象是一个特殊类型的 NavigableString 对象;Comment可以对注释进行解析;# Comment对象
markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
soup = BeautifulSoup(markup, 'html.parser')
comment = soup.b.string
print(comment)
print(type(comment))Hey, buddy. Want to buy a used parser?
<class 'bs4.element.Comment'># -*- coding:utf-8 -*-
# 作者:NoamaNelson
# 日期:2023/2/14
# 文件名称:bs02.py
# 作用:BeautifulSoup的使用
# 联系:VX(NoamaNelson)
# 博客:https://blog.csdn.net/NoamaNelson
from bs4 import BeautifulSoup
# name属性
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>', 'html.parser')
tag = soup.b
print(type(tag))
print(tag.name)
# 修改name
tag.name = "blockquote"
print(tag)
print(tag["class"])
# Attributes属性
print(tag.attrs)
# tag属性修改删除等操作
tag['class'] = 'verybold'
tag['id'] = 1
print(tag)
del tag['class']
del tag['id']
print(tag)
print(tag.get('class'))
# 多值属性
css_soup = BeautifulSoup('<p class="body strikeout"></p>', 'html.parser')
print(css_soup.p['class'])
css_soup = BeautifulSoup('<p class="body"></p>', 'html.parser')
print(css_soup.p['class'])
# NavigableString类
print(tag.string)
print(type(tag.string))
# replace_with() 方法
tag.string.replace_with("No longer bold")
print(tag)
# BeautifulSoup类
# [document]属性
print(soup.name)
# Comment对象
markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
soup = BeautifulSoup(markup, 'html.parser')
comment = soup.b.string
print(comment)
print(type(comment))原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。