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

获取多个BeautifulSoup的函数仅返回1个soup对象是什么原因?

问题原因

你的函数只返回1个soup对象的核心原因是return语句的缩进位置错误,被放置在了for循环的内部:

  • for循环第一次迭代时,完成第一个url的soup生成、添加到列表后,就会执行return直接终止函数运行
  • 后续两个url的遍历逻辑完全没有被执行,自然只能得到长度为1的结果列表

修复方案

把return语句调整到for循环同级的位置,等所有url遍历完成后再返回结果列表,修正后代码如下:

def get_multi_soup(list_url):
    list_multi = []
    for url in list_url:
        soup = BeautifulSoup(requests.get(url).text, "html.parser")
        list_multi.append(soup)
    # return移出for循环内部,放到循环结束后执行
    return list_multi

list_soup = get_multi_soup(list_url)

优化建议

  • 网络请求建议添加超时限制,避免无响应站点导致程序长时间卡住,示例:requests.get(url, timeout=10)
  • 可增加异常捕获逻辑,处理网络请求失败、页面解析错误的场景,避免单个url异常导致整个函数运行失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 15:30:01