You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用BeautifulSoup爬取h2标签调用.text出现AttributeError报错求助

解决方案

报错原因

直接发送无请求头的HTTP请求时,目标网站触发反爬机制,返回的页面结构和浏览器正常访问的结果不一致,导致定位的元素对象为None,调用.text属性时就会抛出该错误。同时使用索引[1]定位h2标签的方式稳定性较差,页面结构稍有变动就会定位失败。

可运行实现代码

import requests
from bs4 import BeautifulSoup

# 配置请求头伪装浏览器访问,绕过基础反爬
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
url = 'https://www.ocupacoes.com.br/cbo-mte/251205-economista'
resp = requests.get(url, headers=headers)
soup = BeautifulSoup(resp.text, 'lxml')

# 按文本精准定位目标h2标签
target_h2 = soup.find('h2', string="Descrição Sumária")
# 提取h2标题文本
h2_content = target_h2.get_text()
# 提取h2后紧邻的正文段落
para_content = target_h2.find_next_sibling('p').get_text(strip=True)

print("标题:", h2_content)
print("正文:", para_content)

关键逻辑说明

  • 添加User-Agent请求头后,网站会将请求识别为正常浏览器访问,返回完整的正确页面结构
  • 采用文本匹配的方式定位h2标签,不受页面内其他h2标签增减的影响,定位稳定性更高
  • find_next_sibling('p')方法可以直接获取当前h2标签之后的第一个同级p元素,就是你需要的完整正文内容

内容的提问来源于stack exchange,提问作者Juan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:24:05