Python语言学习:Beautiful Soup四个对象的具体用法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python语言学习:Beautiful Soup四个对象的具体用法相关的知识,希望对你有一定的参考价值。

Beautiful Soup是Python的一个库,最主要的功能是从网页抓取数据。


Beautiful Soup可以提供一些简单的、python式的函数,用来处理导航、搜索、修改分析树等功能。Beautiful Soup是一个工具箱,通过解析文档为用户提供需要抓取的数据。因为简单,所以不需要多少代码,就可以写出一个完整的应用程序。


Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。


技术分享


Beautiful Soup对象种类


Beautiful Soup将复杂html文档,转换成一个复杂的树形结构。每个节点都是Python对象,所有对象可以归纳为4种:Tag、NavigableString、BeautifulSoup、Comment。


(1)Tag


Tag 其实就是HTML 中的一个个标签,比如:


<title>The Dormouse‘s story</title>


&lt;aclass="sister" href="http://example.com/elsie" id="link1"&gt;Elsie&lt;/a&gt;


上面的title 、a 等等HTML 标签加上里面包括的内容就是Tag


例如:用Beautiful Soup 来获取Tags


print soup.title


print soup.head


print soup.a


print soup.p


print type(soup.a)


print soup.name


print soup.head.name




(2)NavigableString


如果已经得到了标签的内容,要想获取标签内部的文字怎么办?


例如:可以用.string 获取内部文字


print soup.p.string


这样就轻松获取到了标签里面的内容,如果用正则表达式,要复杂很多。它的类型是一个NavigableString,其意思是可以遍历的字符串。


print type(soup.p.string)




(3)BeautifulSoup


BeautifulSoup对象表示的是一个文档的全部内容。很多时候可以把它当作一个特殊的Tag 对象


例如:可以分别获取它的类型,名称,以及属性


print type(soup.name)


print soup.name


print soup.attrs




(4)Comment


Comment对象是一特殊类型NavigableString对象,输出的内容仍不包括注释符号。如果它处理不好,可能会对文本处理造成意想不到的麻烦。


例如:找一个带注释的标签


print soup.a


print soup.a.string


print type(soup.a.string)


本文出自 “中科院计算所培训” 博客,谢绝转载!

以上是关于Python语言学习:Beautiful Soup四个对象的具体用法的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫学习使用Beautiful Soup库

学习笔记Python - Beautiful Soup

Python语言学习:Beautiful Soup四个对象的具体用法

Beautiful Soup 4库--python2.x(学习日记)

python下很帅气的爬虫包 - Beautiful Soup 示例

Python爬虫学习实践基于Beautiful Soup的网站解析及数据可视化