全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析师(CDA)专版
1129 0
2022-05-31

BeautifulSoup是一种可以从html和xm l中快速提取内容的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())#打印按照lxm l格式的补全代码,太长,省略

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

beautifulobj = BeautifulSoup(html_doc,“lxm l”)来指定lxm l解析器解析。

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是爬虫必学的技能之一,大家可以多多了解。

      相关帖子DA内容精选
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群