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

编写首个数据爬取代码遇NameError:findAll未定义问题求助

解决爬虫中findAll未定义的NameError问题

嘿,刚写第一个爬虫就踩坑太正常了,我来帮你搞定这个问题~

你遇到的NameError: name "findAll" is not defined错误,核心原因有两个:

  • 你还没导入提供findAll方法的库(大概率是BeautifulSoup),它不是Python的内置函数
  • 就算导入了库,findAll也不是直接全局调用的函数,而是需要先把HTML解析成BeautifulSoup对象,再通过对象调用这个方法

正确的解决步骤

  1. 安装并导入必要的库
    首先确保你已经安装了beautifulsoup4(处理HTML解析的库)和requests(用来获取网页内容的库,如果是本地HTML可以跳过requests):

    pip install beautifulsoup4 requests
    

    然后在代码开头导入:

    from bs4 import BeautifulSoup
    import requests
    
  2. 解析HTML为BeautifulSoup对象
    不管你是从网页获取HTML,还是本地读取HTML文件,都需要先把内容转换成BeautifulSoup对象,才能调用它的查找方法:

    # 示例:从网页获取HTML
    url = "你要爬取的目标网页URL"
    response = requests.get(url)
    soup = BeautifulSoup(response.text, "html.parser")  # 使用Python内置的html解析器
    
    # 如果是本地HTML文件,可以这样写:
    # with open("你的HTML文件路径.html", "r", encoding="utf-8") as f:
    #     soup = BeautifulSoup(f.read(), "html.parser")
    
  3. 正确调用findAll(或推荐的find_all)方法
    现在通过soup对象调用方法,就能找到目标标签了:

    # 两种写法都可以,find_all是BeautifulSoup推荐的规范写法
    match = soup.findAll("tr", {"class": "match"})
    # 或者
    # match = soup.find_all("tr", {"class": "match"})
    

这样修改后,代码应该就能正常运行,不会再报NameError啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:32:45