如何利用Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释等操作下面就为大家介绍一下
一、标签(标签)对象
1.标签对象与XML或HTML原生文档中的标签相同。
从bs4进口BeautifulSoup
汤=BeautifulSoup (“& lt; b类=癰oldest"祝辞极其bold”, lxml)
标签=soup.b
类型(标签)
bs4.element.Tag 2.
标记的名称属性
每个标签都有自己的名字代理,通过. name来获取
tag.name
' b '
tag.name=癰lockquote"#对原始文档进行修改
标记
& lt;引用类=癰oldest"在极bold<3./blockquote>
标记的属性属性
获取单个属性
标记(类的)
[‘大胆’]
按字典的方式获取全部属性
标记。attrs
{“类”:[‘大胆’]}
添加属性
标记(类的)=皏erybold”
标记(“id”)=1
打印(标签)
& lt;引用类=皏erybold"id=?“在极度bold
删除属性
del标签(类的)
del标记(“id”)
标记
& lt; blockquote>极其bold<4./blockquote>
标记的多值属性
多值属性会返回一个列表
css_soup=BeautifulSoup (' & lt; p类=吧硖錽trikeout"祝辞& lt;/p>”, lxml)
打印(css_soup.p[‘类’])
1
2
(“身体”、“三振”)
1
rel_soup=BeautifulSoup (' & lt; p>回& lt;一个rel=癷ndex"祝辞homepage & lt;/p>”, lxml)
打印(rel_soup.a [' rel '])
rel_soup。[' rel ']=[“指数”,“内容”)
打印(rel_soup.p)
(“指数”)
& lt; p>回& lt;一个rel=爸甘齝ontents"祝辞homepage & lt;/p>
1
2
如果转换的文档是XML格式,那么标记中不包含多值属性
xml_soup=BeautifulSoup (' & lt; p类=吧硖錽trikeout"祝辞& lt;/p>”,“xml”)
xml_soup.p(类的)
<代码类=" language-bash "> “身体失败” 二,可遍历字符串(NavigableString) 1 .字符串常被包含在标签内,使用NavigableString类来包装标签中的字符串 ”“bash 从bs4进口BeautifulSoup 汤=BeautifulSoup (' & lt; b类=按蟮ā钡脑诩鋌old ', ' lxml ') 标签=soup.b 打印(tag.string) print(类型(tag.string)) 非常大胆的 & lt;类“bs4.element.NavigableString”比; 2.一个NavigableString字符串与Python中的str字符串相同,通过str()方法可以直接将NavigableString对象转换成str字符串=的unicode_string str (tag.string) 打印(unicode_string) print(类型(unicode_string)) 非常大胆的 & lt;类str的祝辞 3.标签中包含的字符串不能编辑,但是可以被替换成其它的字符串,用replace_with()方法 tag.string。不再replace_with(“大胆”) 标签 & lt; b类=按蟮ā弊4遣辉賐old 1 三,BeautifulSoup对象BeautifulSoup对象表示的是一个文档的全部内容。 大部分时候,可以把它当作标记对象,它支持遍历文档树和搜索文档树中描述的大部分的方法。 四、注释与特殊字符串(评论)对象 标记=" & lt; b> & lt; !——嘿,老兄。想买一个使用解析器?——祝辞& lt;/b>” lxml的汤=BeautifulSoup(标记) 评论=soup.b.string 类型(评论) bs4.element.Comment 评论对象是一个特殊类型的NavigableString对象 评论 “嘿,老兄。想买一个使用解析器?”代码>