使用Python BeautifulSoup的爬取脚本执行时出现NameError问题求助
解决NameError: name 'scrape' is not defined爬取脚本错误
错误原因分析
你贴出的代码里没有定义或调用scrape函数,因此NameError和这段代码无关,大概率是以下情况之一:
- 你在Python交互环境中手动输入了
scrape()命令,但当前脚本根本不存在这个函数 - 你误运行了另一个包含
scrape()调用但未定义该函数的脚本,而非当前贴出的版本
代码修正与运行建议
另外,原代码的URL缺少https://前缀,会导致requests请求失败,先修正这一问题,同时添加请求状态检查避免静默失败:
import requests from bs4 import BeautifulSoup # 补充完整的HTTPS前缀 url = "https://sawadee.nl/groepsrondreizen/midden-en-zuid-amerika/costa-rica" response = requests.get(url) # 主动抛出请求失败的异常,方便排查问题 response.raise_for_status() soup = BeautifulSoup(response.text, "html.parser") for row in soup.select(".departure-list__table tbody tr"): date = row.select_one(".departure-list__date").text.strip() group = row.select_one(".departure-list__group").text.strip() print(f"Op {date} is de groepssamenstelling: {group}")
正确运行方式
- 将修正后的代码保存为
scraper.py - 打开CMD,切换到脚本所在目录
- 运行命令:
python scraper.py
注意:不要在Python交互环境中单独输入
scrape(),你的脚本逻辑是直接执行的,不需要调用这个不存在的函数。
内容的提问来源于stack exchange,提问作者Help
相关产品推荐
相关产品推荐

