Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释


Posted in Python onJanuary 25, 2020

一、Tag(标签)对象

1.Tag对象与XML或HTML原生文档中的tag相同。

from bs4 import BeautifulSoup
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>','lxml')
tag = soup.b
type(tag)
bs4.element.Tag

2.Tag的Name属性

每个tag都有自己的名字,通过.name来获取

tag.name
'b'
tag.name = "blockquote" # 对原始文档进行修改
tag
<blockquote class="boldest">Extremely bold</blockquote>

3.Tag的Attributes属性

获取单个属性

tag['class']
['boldest']

按字典的方式获取全部属性

tag.attrs
{'class': ['boldest']}

添加属性

tag['class'] = 'verybold'
tag['id'] = 1
print(tag)
<blockquote class="verybold" id="1">Extremely bold</blockquote>

删除属性

del tag['class']
del tag['id']
tag
<blockquote>Extremely bold</blockquote>

4.Tag的多值属性

多值属性会返回一个列表

css_soup = BeautifulSoup('<p class="body strikeout"></p>','lxml')
print(css_soup.p['class'])
['body', 'strikeout']
rel_soup = BeautifulSoup('<p>Back to the <a rel="index">homepage</a></p>','lxml')
print(rel_soup.a['rel'])
rel_soup.a['rel'] = ['index', 'contents']
print(rel_soup.p)
['index']
<p>Back to the <a rel="index contents">homepage</a></p>

如果转换的文档是XML格式,那么tag中不包含多值属性

xml_soup = BeautifulSoup('<p class="body strikeout"></p>', 'xml')
xml_soup.p['class']
'body strikeout'

二、可遍历字符串(NavigableString)

1.字符串常被包含在tag内,使用NavigableString类来包装tag中的字符串

from bs4 import BeautifulSoup
soup = BeautifulSoup('<b class="boldest">Extremely bold</b>','lxml')
tag = soup.b
print(tag.string)
print(type(tag.string))
Extremely bold
<class 'bs4.element.NavigableString'>

2.一个 NavigableString 字符串与Python中的str字符串相同,通过str() 方法可以直接将 NavigableString 对象转换成str字符串

unicode_string = str(tag.string)
print(unicode_string)
print(type(unicode_string))
Extremely bold
<class 'str'>

3.tag中包含的字符串不能编辑,但是可以被替换成其它的字符串,用 replace_with() 方法

tag.string.replace_with("No longer bold")
tag

<b class="boldest">No longer bold</b>

三、BeautifulSoup对象 BeautifulSoup 对象表示的是一个文档的全部内容。

大部分时候,可以把它当作 Tag 对象,它支持 遍历文档树 和 搜索文档树 中描述的大部分的方法。

四、注释与特殊字符串(Comment)对象

markup = "<b><!--Hey, buddy. Want to buy a used parser?--></b>"
soup = BeautifulSoup(markup,'lxml')
comment = soup.b.string
type(comment)
bs4.element.Comment

Comment 对象是一个特殊类型的 NavigableString 对象

comment
'Hey, buddy. Want to buy a used parser?'

更多关于Python爬虫库BeautifulSoup的使用方法请查看下面的相关链接

Python 相关文章推荐
python处理大数字的方法
May 27 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
Python环境变量设置方法
Aug 28 Python
python XlsxWriter模块创建aexcel表格的实例讲解
May 03 Python
Django框架实现逆向解析url的方法
Jul 04 Python
python爬虫爬取微博评论案例详解
Mar 27 Python
Django上线部署之IIS的配置方法
Aug 22 Python
Pytorch的mean和std调查实例
Jan 02 Python
通过Turtle库在Python中绘制一个鼠年福鼠
Feb 03 Python
如何利用python 读取配置文件
Jan 06 Python
Python scrapy爬取起点中文网小说榜单
Jun 13 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
Jan 25 #Python
使用Python爬虫库requests发送表单数据和JSON数据
Jan 25 #Python
Python爬虫库requests获取响应内容、响应状态码、响应头
Jan 25 #Python
使用Python爬虫库requests发送请求、传递URL参数、定制headers
Jan 25 #Python
flask框架自定义url转换器操作详解
Jan 25 #Python
常用python爬虫库介绍与简要说明
Jan 25 #Python
flask框架url与重定向操作实例详解
Jan 25 #Python
You might like
php explode函数实例代码
2012/02/27 PHP
PHP中最容易忘记的一些知识点总结
2013/04/28 PHP
PHP 提取图片img标记中的任意属性的简单实例
2013/12/10 PHP
Parse正式发布开源PHP SDK
2014/08/11 PHP
php+xml结合Ajax实现点赞功能完整实例
2015/01/30 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
php实现倒计时效果
2015/12/19 PHP
YII Framework框架教程之日志用法详解
2016/03/14 PHP
php PDO异常处理详解
2016/11/20 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
Javascript 键盘keyCode键码值表
2009/12/24 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
Jquery焦点图实例代码
2014/11/25 Javascript
Highcharts入门之简介
2016/08/02 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
vue.js路由跳转详解
2017/08/28 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
微信小程序异步处理详解
2017/11/10 Javascript
vue页面切换到滚动页面显示顶部的实例
2018/03/13 Javascript
JavaScript常用截取字符串的三种方式用法区别实例解析
2018/05/15 Javascript
vue-router中的hash和history两种模式的区别
2018/07/17 Javascript
angular inputNumber指令输入框只能输入数字的实现
2019/12/03 Javascript
JS实现水平移动与垂直移动动画
2019/12/19 Javascript
[01:00:14]DOTA2官方TI8总决赛纪录片 真视界True Sight
2019/01/16 DOTA
Python去除、替换字符串空格的处理方法
2018/04/01 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
浅析Python 多行匹配模式
2020/07/24 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python实现图片素描效果
2020/09/26 Python
使用CSS3来代替JS实现交互
2017/08/10 HTML / CSS
html5 canvas实现圆形时钟代码分享
2013/12/25 HTML / CSS
米兰网婚纱礼服法国网上商店:Milanoo法国
2016/08/20 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
船舶工程技术专业求职信
2014/08/07 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
Mysql忘记密码解决方法
2022/02/12 MySQL