登录
首页精彩阅读Python爬虫利器BeautifulSoup解析!
Python爬虫利器BeautifulSoup解析!
2020-05-14
收藏

BeautifulSoup是一种可以从html和xml中快速提取内容的python库,共有四种类型,对于爬虫解析来说,主要用其中的遍历文档树和搜索文档树


来自BeautifulSoup的官方的一个示例,使用的是HTML文本


The Dormouse's story


Once upon a time there were three little sisters; and their names were

Elsie,
Lacie and
Tillie;

and they lived at the bottom of a well.


...



1.导入模块   from bs4import BeautifulSoup


2.创建beautifulsoup对象  


beautifulobj = BeautifulSoup(html_doc)#

print(type(beautifulobj))#beautifulsoup'="">

print(beautifulobj.prettify())#打印按照lxml格式的补全代码,太长,省略


说明:此处在创建对象时未指定解析器,默认使用的是python自带的解析器html.parse,原因在于新买的电脑安装lxml模块时失败,官方推荐使用lxml解析器,可通过


beautifulobj = BeautifulSoup(html_doc,"lxml")来指定lxml解析器解析。


Python爬虫利器BeautifulSoup有四种类型,它们分别是Tag,BeautifulSoup,NavigableString,comment。


Tag类型即节点,比如HTML中的a标签、p标签等等,tag类型主要有两个属性,name和attributes属性,可通过.name和.attrs方法获取属性值,其中.attrs返回字典类型,并且如果是多值属性的话,其value是一个列表;也可通过["href"]指定输出特定的属性值。


print(type(beautifulobj.a))#

print(beautifulobj.p.name)#p,这样的使用方式,我是懵的,自己都敲进去P标签了,感觉自己有点**

print(beautifulobj.p.attrs)#,返回一个字典,字典的value有可能是个list, {'class': ['title']}class是个多值属性

print(beautifulobj.p["class"])#['title'],此处是个列表,如果不是多值属性,输出就是字符串

print(beautifulobj.a["id"])#link1


BeautifulSoup类型是整个文档的根形式,一种特殊的Tag类型,支持遍历文档树和搜索文档树的大部分方法,但是没有name和attrs属性。


print(type(beautifulobj))#beautifulsoup'="">


NavigableString是tag中的字符串内容形式。


print(type(beautifulobj.p.string))#


comment是文档中的备注类型。


在使用.string时,可同样输出NavigableString和coment类型,如果获取特定的内容而又想与另一种类型区别对待时必须通过type来进行判断。


BeautifulSoup是爬虫必学的技能之一,大家可以多多了解。


数据分析咨询请扫描二维码

客服在线
立即咨询