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 相关文章推荐
17个Python小技巧分享
Jan 23 Python
Python中函数的参数定义和可变参数用法实例分析
Jun 04 Python
Python二分查找详解
Sep 13 Python
python多线程方式执行多个bat代码
Jun 07 Python
Python实现选择排序
Jun 04 Python
Python实现查找匹配项作处理后再替换回去的方法
Jun 10 Python
Python应用库大全总结
May 30 Python
python 多线程对post请求服务器测试并发的方法
Jun 13 Python
python使用PIL和matplotlib获取图片像素点并合并解析
Sep 10 Python
python3 tcp的粘包现象和解决办法解析
Dec 09 Python
Python爬虫新手入门之初学lxml库
Dec 20 Python
Python中zipfile压缩包模块的使用
May 14 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
基于文本的搜索
2006/10/09 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
2011/10/29 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
php生成二维码
2015/08/10 PHP
Yii2框架数据库简单的增删改查语法小结
2016/08/31 PHP
PHP封装函数实现生成随机的字符串验证码
2017/01/24 PHP
javascript中的array数组使用技巧
2010/01/31 Javascript
Jquery AutoComplete自动完成 的使用方法实例
2010/03/19 Javascript
通过Javascript创建一个选择文件的对话框代码
2012/06/16 Javascript
获取元素距离浏览器周边的位置的方法getBoundingClientRect
2013/04/17 Javascript
js操作checkbox遇到的问题解决
2013/06/29 Javascript
jquery实现标签支持图文排列带上下箭头按钮的选项卡
2015/03/14 Javascript
JavaScript中window.open用法实例详解
2015/04/15 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
nodeJs链接Mysql做增删改查的简单操作
2017/02/04 NodeJs
微信小程序开发之入门实例教程篇
2017/03/07 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
AngularJS页面带参跳转及参数解析操作示例
2017/06/28 Javascript
JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
2017/06/30 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
一篇文章带你使用Typescript封装一个Vue组件(简单易懂)
2020/06/05 Javascript
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
Softmax函数原理及Python实现过程解析
2020/05/22 Python
python中watchdog文件监控与检测上传功能
2020/10/30 Python
GUESS西班牙官方网上商城:美国服饰品牌
2017/03/15 全球购物
罗马尼亚购物网站:Vivantis.ro
2019/07/20 全球购物
办公文员的工作岗位职责
2013/11/12 职场文书
欢迎词怎么写
2015/01/23 职场文书
高一军训决心书
2015/02/05 职场文书
社区母亲节活动总结
2015/02/10 职场文书
地道战观后感400字
2015/06/04 职场文书
一文读懂go中semaphore(信号量)源码
2021/04/03 Golang
Spring Bean的实例化之属性注入源码剖析过程
2021/06/13 Java/Android
学习nginx基础知识
2021/09/04 Servers
Python Matplotlib库实现画局部图
2021/11/17 Python