BeautifulSoup学习 之结构

本文介绍了使用BeautifulSoup处理HTML文档的基本方法,详细解释了四种核心对象:Tag、NavigableString、BeautifulSoup和Comment,并通过实例展示了如何操作这些对象。

 

Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:

  1.     Tag
  2.     NavigableString
  3.     BeautifulSoup
  4.     Comment

()1)、Tag

  就是html中的标签,如图所示

代码:

html
'<title>The Dormouse\'s story</title> <a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>'
>>> soup=BeautifulSoup(html,"html.parser")
>>> soup.title
<title>The Dormouse's story</title>
>>> soup.name
'[document]'
>>> soup.head
>>> soup.a
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
>>> type(soup.title)
<class 'bs4.element.Tag'>
>>> type(soup.a)
<class 'bs4.element.Tag'>
>>> soup.a.name
'a'
>>> soup.a.attrs
{'href': 'http://example.com/elsie', 'id': 'link1', 'class': ['sister']}
>>> soup.a.attrs['class']
['sister']
>>> soup.a.text
'Elsie'

 

(2)NavigableString

要想获取标签内部的文字怎么办呢

很简单,用 .string 即可,例如

>>> soup.a.string
'Elsie'
>>>type(soup.a)
<class 'bs4.element.Tag'>
>>> type(soup.a.name)
<class 'str'>
>>> type(soup.a.text)
<class 'str'>
>>> type(soup.a.string)
<class 'bs4.element.NavigableString'>

可以看出来,soup.a.sting获取到的是一个NavigableString类型

(3)BeautifulSoup

BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag,我们可以分别获取它的类型,名称,以及属性来感受一下

>>> soup.name
'[document]'
>>> type(soup)
<class 'bs4.BeautifulSoup'>

 

(4)Comment

Comment 对象是一个特殊类型的 NavigableString 对象,其实输出的内容仍然不包括注释符号,

>>> html="""<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>"""
>>> soup=BeautifulSoup(html,"html.parser")
>>> soup.a
<a class="sister" href="http://example.com/elsie" id="link1"><!-- Elsie --></a>
>>> soup.a.string
' Elsie '
>>> soup.a.text
''

 

转载于:https://www.cnblogs.com/duole/p/6539714.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值