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

使用Python+Selenium爬取h2标签时循环触发NameError的问题排查

问题分析与解决方案

嘿,我来帮你梳理下代码里的问题~

错误原因

你遇到的NameError: name 'temp' is not defined,核心问题有两个:

  1. 循环变量未提前定义:你直接写了for i in temp:,但temp在这行代码之前根本没被赋值,Python不知道它指代什么,自然会报错。
  2. 方法用错导致逻辑无效:就算你提前定义了temp,你用的是find_element_by_tag_name('h2')(单数形式)——这个方法只会返回页面上第一个匹配的h2元素,循环也没法拿到所有h2标签。

修正后的代码

要抓取所有h2标签并打印,你需要用复数形式的查找方法获取所有h2元素,再遍历这个元素列表:

# 第一步:获取页面上所有的h2元素(注意是elements复数)
all_h2_elements = driver.find_elements_by_tag_name('h2')

# 第二步:遍历每个h2元素,打印其文本内容
for h2 in all_h2_elements:
    print(h2.text)

额外说明

  • find_elements_by_tag_name会返回一个包含所有匹配元素的列表,你可以直接遍历这个列表拿到每个h2元素。
  • 如果某些h2标签可能没有文本内容,你可以加个简单判断避免打印空行:
    for h2 in all_h2_elements:
        text = h2.text.strip()
        if text:
            print(text)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:51:03