【Python爬虫】BS4(BeautifulSoup)常用属性及函数

本文详细介绍了如何使用BeautifulSoup在Python爬虫中,通过 tagName、CSS选择器、find和find_all方法获取HTML标签,以及如何提取文本数据和属性值。以百度首页为例,涵盖了关键操作技巧和实例应用。
摘要由CSDN通过智能技术生成

【Python爬虫】BS4(BeautifulSoup)常用属性及函数

以百度首页为例,假设前面的代码有

from bs4 import BeautifulSoup
import requests

url = 'https://www.baidu.com/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36 Edg/96.0.1054.62'
}

res = requests.get(url, headers=headers)

soup = BeautifulSoup(res.text, 'lxml')

一、获取标签

1. soup.tagName

返回找到的第一个tagName标签(与函数find()相同)

# 返回找到的第一个<a>标签
soup.a
2. soup.find(tagName)

返回找到的第一个tagName标签(与.tagName属性相同)

# 返回找到的第一个<a>标签
soup.find('a')
2.1 soup.find(tagName, class_/id/attr)

根据class_idattr(其他属性,比如type)寻找标签,如果有多个,则返回找到的第一个标签

# 返回找到的第一个属性type='text/javascript'的<script>标签
soup.find('script', type='text/javascript')
3. soup.find_all(tagName)

返回包含所有tagName标签的列表

# 返回包含所有<input>标签的列表
print(soup.find_all('input'))

》输出 》
在这里插入图片描述

4. soup.select(css_selector)

根据CSS选择器返回包含所有得到的标签的列表
CSS选择器:https://www.runoob.com/cssref/css-selectors.html

# 选择id为s_index_off_css的标签,返回列表
print(soup.select('#s_index_off_css'))

》输出 》
在这里插入图片描述

二、获取文本数据

假设tag指由soup获取到的某标签

1. tag.text和tag.get_text()

获取标签下的所有文本数据(包括所有子标签下的子标签下的…)
在这里插入图片描述

# 获取class="s_tab"的第一个标签
tag = soup.select('.s_tab')[0]
print(tag.text)
print(tag.get_text())

》输出 》

网页资讯视频图片知道文库贴吧地图采购更多
网页资讯视频图片知道文库贴吧地图采购更多
2. tag.string

只返回标签的直系文本数据

# 获取class="s_tab"的第一个标签
tag = soup.select('.s_tab')[0]
print(tag.string)

由上图可知,该

没有直系文本数据

》输出 》

None

三、获取属性值

假设tag指由soup获取到的某标签

tag[attr]

获取某一标签的某属性的值
在这里插入图片描述

# 选择id="s_tab"标签下的<div>标签下的第一个<a>标签
tag = soup.select('#s_tab > div > a')[0]
print(tag['href'])

》输出 》

https://www.baidu.com/s?rtt=1&bsst=1&cl=2&tn=news
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

insight^tkk

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值