如何使用Python BeautifulSoup4单独提取HTML树中指定标签的内容与属性
解决方案
你现有代码首先存在类名拼写错误:原HTML中h1的class属性为pr-new-br(中划线连接),你代码里写的是下划线连接的pr_new_br,需要先修正这个基础问题。
要分别提取三个目标内容,只需要定位到h1节点后,单独查找内部的a和span标签即可,可参考以下实现代码:
# 定位目标h1节点,select_one直接返回匹配到的第一个节点,写法更简洁 h1_node = soup.select_one("h1.pr-new-br") # 提取a标签内文本,strip=True自动去除首尾多余空白 a_text = h1_node.find("a").get_text(strip=True) # 提取a标签的href属性值 a_href = h1_node.find("a")["href"] # 提取span标签内文本 span_text = h1_node.find("span").get_text(strip=True)
额外说明:
- 如果页面结构可能出现标签缺失的情况,可以先加节点存在性判断(如
if h1_node:)再执行后续提取逻辑,避免抛出异常 - 如果需要保留文本首尾的空白,去掉
get_text()的strip=True参数即可
内容的提问来源于stack exchange,提问作者byetisener
相关产品推荐
相关产品推荐

