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判断windows隐藏文件的方法
Mar 21 Python
python链接Oracle数据库的方法
Jun 28 Python
django之session与分页(实例讲解)
Nov 13 Python
python 重命名轴索引的方法
Nov 10 Python
python实现抖音点赞功能
Apr 07 Python
Django 请求Request的具体使用方法
Nov 11 Python
python之pymysql模块简单应用示例代码
Dec 16 Python
python的reverse函数翻转结果为None的问题
May 11 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
May 15 Python
Flask处理Web表单的实现方法
Jan 31 Python
Python快速实现一键抠图功能的全过程
Jun 29 Python
Python基础数据类型tuple元组的概念与用法
Aug 02 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下关于Cannot use a scalar value as an array的解决办法
2010/08/08 PHP
php冒泡排序、快速排序、快速查找、二维数组去重实例分享
2014/04/24 PHP
php利用事务处理转账问题
2015/04/22 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
Javascript实现DIV滚动自动滚动到底部的代码
2012/03/01 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
javascript作用域、作用域链(菜鸟必看)
2016/06/16 Javascript
jQuery EasyUI Tab 选项卡问题小结
2016/08/16 Javascript
详解Vue方法与事件
2017/03/09 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
微信小程序使用audio组件播放音乐功能示例【附源码下载】
2017/12/08 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
2019/10/29 Javascript
JS面向对象之单选框实现
2020/01/17 Javascript
nodejs实现百度舆情接口应用示例
2020/02/07 NodeJs
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
js+css3实现炫酷时钟
2020/08/18 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
[01:03:09]完美世界DOTA2联赛PWL S2 Forest vs SZ 第二场 11.25
2020/11/26 DOTA
Python使用filetype精确判断文件类型
2017/07/02 Python
tensorflow中next_batch的具体使用
2018/02/02 Python
python将回车作为输入内容的实例
2018/06/23 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
tensorboard显示空白的解决
2020/02/15 Python
python 安装库几种方法之cmd,anaconda,pycharm详解
2020/04/08 Python
python新手学习使用库
2020/06/11 Python
Python+OpenCV检测灯光亮点的实现方法
2020/11/02 Python
Python 无限级分类树状结构生成算法的实现
2021/01/21 Python
法拉利英国精品店:Ferraris Boutique UK
2019/07/20 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
存储过程的优点有哪些
2012/09/27 面试题
远程研修随笔感言
2014/02/10 职场文书
企业党员公开承诺书
2014/03/26 职场文书
团日活动总结书格式
2014/05/08 职场文书
课例研修方案
2014/05/31 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
2014年超市员工工作总结
2014/11/18 职场文书