码迷,mamicode.com
首页 > 编程语言 > 详细

PYTHON BS 四大对象

时间:2018-08-20 13:08:30      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:怎么   code   key   灵活   nav   http   意思   beautiful   过滤   

BeautifulSoup是灵活又方便的网页解析库,处理搞笑,支持多种解析器
利用它不用编写正则表达式即可方便地实现网页信息的提取
BS的四大对象:
1.Tag
Tag就是HTML中的一个个标签,例如:
<a class="sister" href="http://example.com/elsie" id="link1">Elsie</a>
我们就可以通过Bs轻松的从Html中获取
soup = BeautifulSoup(html,"lxml")
print(soup.a)
当然你也可以获取别的标签
我们来验证以下这些对象的类型
print(type(soup.a))
<class ‘bs4.element.Tag‘>
对于Tag,它有两个重要的属性,name 和 attrs
print(soup.a.name)
print(soup.a.attrs)
#a
#{‘href‘: ‘http://example.com/elsie‘, ‘class‘: [‘sister‘], ‘id‘: ‘link1‘}
name这个比较特殊,它就代表着标签名称,而attrs则代表自己的一些信息,或者称作属性.它是一个字典形,那如果我们想获取里面的某个值怎么做呢,直接访问那个key就完事了.
print(soup.a[‘href‘])
结果为:#http://example.com/elsie
2.NavigableString
既然我们已经得到了标签的内容,那么问题来了,那我们想获取里面 d的内容应该怎么办,直接.string即可..
print soup.p.string
#The Dormouse‘s story
这样就方便多了,它的类型是什么呢
print type(soup.p.string)
#<class ‘bs4.element.NavigableString‘>
3.BeautifulSoup
BeautifulSoup对象表示一个文档的所有内容,大部分时候,我们可以将它当作一个Tag,我们可以获得它的类型 名称 属性 让我们Feel一下。
print type(soup.name)
#<type ‘unicode‘>
print soup.name
# [document]
print soup.attrs
#{} 空字典
4.Comment
有意思的是,如果其中的内容有htmlz注释 “.string” 它会自动的过滤掉注释 所以我们可以进行下判断
print(type(soup.a.string))
print(bs4.element.Comment)
#<class ‘bs4.element.Comment‘>
#<class ‘bs4.element.Comment‘>
if type(soup.a.string)=bs4.element.Comment:
print(soup.a.string)

PYTHON BS 四大对象

标签:怎么   code   key   灵活   nav   http   意思   beautiful   过滤   

原文地址:https://www.cnblogs.com/iWaitYou/p/qq947099752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!