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 四大对象
原创mb6100f4ef45bc6 博主文章分类:Python Crawler ©著作权
©著作权归作者所有:来自51CTO博客作者mb6100f4ef45bc6的原创作品,请联系作者获取转载授权,否则将追究法律责任
上一篇:Python高级特性(一)
下一篇:说一说MVC的过滤器(一)
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
苹果16这四大创新吊打华为三折叠手机
华为你卖19999起太便宜了啊
iphone 参考资料 智能机 -
九大内置对象四大域
四大作用域有哪些你知道吗?
作用域 服务器 内置对象 -
世界四大文明是哪四大?
四大文明分别是巴比伦文明、埃及文明、印度文明和中华文明。1、第一名是
bug id 人工智能 社交网络 datepicker