pythonBeautifulSoup的使用

BeautifulSoup是一款强大的HTML等文档解析工具,能够快速解析HTML标签和内容.以下是BeautifulSoup常见的一些用法:

# 演示数据

html = '''

<html><head><title>This is HTML title</title></head>

<body>This is HTML body!<p>This is p tag content</p>

<p>p1<a>p2</a><p>p3<span>span in p3</span></p>p3</p>

<body>

'''

from bs4 import BeautifulSoup

soup = BeautifulSoup(html,'lxml')

# 美化HTML代码

# print(soup.prettify())

# 获取标题

print(soup.title.string)

# 获取第一个p标签文本

print(soup.p.string)

# 嵌套选择节点

print(soup.head.title)

print('*' * 50)

# 重新赋值进行测试

html = '''

<html><head><title>This is HTML title</title></head>

<body>This is HTML body!<p>p1<a id='a1'>p2</a><a class='a3'>p3<span>span in p3</span></a>p4</p>

<body>

'''

soup = BeautifulSoup(html,'lxml')

# 获取第一个p的直接子节点

print(soup.p.children)

for i,child in enumerate(soup.p.children):

pass

# print(i,child)

print('*' * 50)

# 获取第一个p的所有子孙节点

print(soup.p.descendants)

for i,child in enumerate(soup.p.descendants):

pass

# print(i,child)

print('*' * 50)

# 获取第一个p的父节点

# print(soup.p.parent)

# 获取第一个p的祖先节点

# print(soup.p.parents)

print('*' * 50)

# 标准选择器 find_all(name,attr,recursive,text,**kwargs) 可根据标签名,属性,内容查找文档

# 查找所有a标签

print(soup.find_all('a'))

# 查找指定下标的a元素

print(soup.find_all('a')[0])

# 查找a元素下的span子元素

a = soup.find_all('a')[1]

print(a.find_all('span'))

# 根据属性查找

print(soup.find_all(attrs={'id':'a1'}))

# 查找class属性,限制查找1条

print(soup.find_all(class_='a3',limit=1))

print('*' * 50)

# 通过select()传入CSS选择器查找

print(soup.select('p'))

print(soup.select('#a1'))

print(soup.select('.a3 span'))

# 获取元素文本内容

print(soup.select('a')[1].get_text())

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值