BeautifulSoup入门

这篇博客介绍了Python库BeautifulSoup的基础用法,包括安装、基本使用方法、对象类型(Tag、NavigableString、BeautifulSoup、Comment)、遍历文档树、搜索文档树、格式化输出及get_text()方法。适合初学者了解和掌握BeautifulSoup解析HTML和XML文档的技巧。

BeautifulSoup是一个用来从HTML和XML文件中提取数据的Python库,最近需要爬取一些数据,简单记录一下BeautifulSoup的基本用法。BeautifulSoup的详细用法可以参考文档:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html

BeautifulSoup的安装

目前BeautifulSoup的版本为第四版,可以直接使用pip进行安装:

pip install beautifulsoup4

之后可以通过pip list检查BeautifulSoup是否安装成功。

BeautifulSoup基本使用方法

将一段文档传入BeautifulSoup的构造方法,可以得到一个文档对象,可以传入一段字符串(比如爬取得到的网页源码)或一个文件句柄。

# 使用BeautifulSoup之前需要先引入
from bs4 import BeautifulSoup
# 传入文件句柄的用法,构造方法返回的便是文档对象
soup = BeautifulSoup(open("index.html"))
html = "<html><body>data</body></html>"
# 传入文档字符串的用法
soup1 = BeautifulSoup(html)

BeatuifulSoup会选择最合适的解析器来解析这段文档,当然也可以手动指定解析器,不同解析器的区别可以参考引言处的官方文档,比如指定lxml为解析器,则可以使用:BeautifulSoup(html,"lxml")

BeautifulSoup对象的种类

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

Tag

当我们使用BeautifulSoup构造方法获取到文档对象之后,Tag对象可以看作HTML中的标签对象,可以使用.操作符获取,获取到Tag对象后可以获取对应HTML标签的属性,使用类似字典的操作方法获取。

soup = BeautifulSoup('<b class="bold">tag</b>')
# 通过.操作符可以获取对应的标签对象
type(soup.b)  # <class 'bs4.element.Tag'>
tag = soup.b
# Tag可以通过.name获取自己的名字
tag.name   # 'b'
# Tag的属性操作方法与字典相同
tag['class']  # 'bold'
# 也可以使用.attrs获取Tag的所有属性
tag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值