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)

时间: 2024-10-12 16:28:22

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

C++语言学习(十四)——C++类成员函数调用分析

C++语言学习(十四)--C++类成员函数调用分析 一.C++成员函数 1.C++成员函数的编译 C++中的函数在编译时会根据命名空间.类.参数签名等信息进行重新命名,形成新的函数名.函数重命名的过程通过一个特殊的Name Mangling(名字编码)算法来实现.Name Mangling算法是一种可逆的算法,既可以通过现有函数名计算出新函数名,也可以通过新函数名逆向推导出原有函数名.Name Mangling算法可以确保新函数名的唯一性,只要命名空间.所属的类.参数签名等有一个不同,那么产生的

Python快速学习10: 循环的对象及设计 (生活的规律)

前言 系列文章:[传送门] 生活逐渐规律,按时睡觉.今天写博客,明天补时间看会书.慢慢的时间很珍惜 我很喜欢! 时钟就像个循环体,我们将它融入生活. 正文 循环对象的并不是随着Python的诞生就存在的,但它的发展迅速,特别是Python 3x的时代,循环对象正在成为循环的标准形式. 灵活的循环方式 (我晚饭后爱上了萨克斯,因为这是生活的一部分.属于我的特殊循环对象,它的按键就像循环方式,然后出来一首美丽的歌曲) 我的萨克斯偶像 循环对象 循环对象是这样一个对象,它包含有一个next()方法(_

Python语言学习笔记

获得人生中的成功需要的专注与坚持不懈多过天才与机会.  ——C.W. Wendte Python将很快成为你最喜欢的编程语言! Qt库?  PyQt  Perl-Qt 简单易学,功能强大,高效率的高层数据结构,简单而有效地实现面向对象编程. Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发. 注重的是如何解决问题而不是编程语言的语法和结构. wxPython,Twisted,Boa Constru

详解Python 采用 requests + Beautiful Soup 爬取房天下新楼盘推荐

最近一直在关注Python写爬虫相关的知识,尝试了采用requests + Beautiful Soup来爬取房天下(原搜房网)的推荐新楼盘. 不用不知道,一用发现有惊喜也有惊吓,本文就一同记录下惊喜和踩的一些乱码的坑. 首先,觉得Beautiful soup解析网页更加符合人类的常规思维,比使用正则表达式(python中的re库)更容易理解. 同时关于requests遇到了中文字符和特殊字符解码的问题.本文都将给于深入的解说. 软件环境 Python    : 3.6.0 PyCharm: C

python标准库Beautiful Soup与MongoDb爬喜马拉雅电台的总结

Beautiful Soup标准库是一个可以从HTML/XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式,Beautiful Soup将会节省数小时的工作时间.pymongo标准库是MongoDb NoSql数据库与python语言之间的桥梁,通过pymongo将数据保存到MongoDb中.结合使用这两者来爬去喜马拉雅电台的数据... Beautiful Soup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,其中一个是

python语言学习1

Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言. 龟叔给Python的定位是“优雅”.“明确”.“简单”,所以Python程序看上去总是简单易懂 初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序 python语言是一种很高级的语言 写代码的时候代码量很小,但是所带来的缺点就是运行速度慢 C语言是可以用来编写操作系统的贴近硬件的语言,所以,C语言适合开发那些追求运行速度.充分发挥硬件性

Python 语言学习

python 语言是什么? 1 #!/usr/bin/env python 2 # -*- coding:utf8 -*- 3 4 print("hello world") #!/usr/bin/env python # -*- coding:utf8 -*- print("hello world") 原文地址:https://www.cnblogs.com/flywithwind42/p/9431087.html

Python语言学习 (四)1.2

访问属性: 1. 直接访问 2. 自定义get,set方法 3. 通过属性修饰器 @property,  @***.setter(修改属性值),  @***.deleter(删除属性,不常用) 4. 描述符(代码重用) 方法: 实例方法:self做第一个参数,被绑定到对象本身,self指向对象本身的指针      也分为公有方法和私有方法,私有方法也是以_开头. 特殊方法:__init__, __str__, __cmp__等等. 类方法:用@classmethod装饰器修饰,第一个参数是cls

Python语言学习 (四)1.1

经典类,新式类 经典类是指没有继承的,新式类是继承了的.现在基本是新式类. #encoding=utf-8 #经典类class Dog: pass #继承了object,为新式类class DogNew(object): pass #可输出此类是什么类型的类print type(Dog)print type(DogNew) class Heibei(Dog): pass class Bomei(DogNew): pass print type(Heibei)print type(Bomei) 结