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

使用BeautifulSoup循环仅显示最后一条结果的问题求助

解决Python网页爬取循环仅显示最后一条的问题

嘿,我之前爬取网页时也踩过这个一模一样的坑!这种情况几乎都是代码逻辑里的小疏忽导致的,给你几个最常见的排查和解决方向:

  • 变量初始化位置错了
    如果你把存储结果的列表、字典这类容器放在循环内部,那每次循环都会重新创建一个空容器,之前的结果全被清空,最后自然只剩最后一条数据。
    错误示例:

    for product in product_list:
        # 每次循环都重置这个列表,之前的数据全丢了
        scraped_data = []
        scraped_data.append({"name": product.find("h3").text})
    print(scraped_data)  # 只显示最后一个产品
    

    修正后:

    # 把容器初始化放在循环外面,所有结果都往同一个列表里加
    scraped_data = []
    for product in product_list:
        scraped_data.append({"name": product.find("h3").text})
    print(scraped_data)  # 显示所有产品数据
    
  • 缩进错误导致输出位置不对
    如果你的print()语句写在了循环外面,那它只会在整个循环跑完后执行一次,自然只能打印最后一次循环得到的值。
    错误示例:

    for item in items:
        content = item.get_text()
    print(content)  # 只打印最后一个item的内容
    

    修正后(如果要逐条输出):

    for item in items:
        content = item.get_text()
        print(content)  # 每条item的内容都会打印出来
    
  • 用单个变量直接覆盖而不是累加
    要是你用单个变量来存每个循环的结果,而不是用列表/字典这类结构收集,那每次循环都会把变量的值替换成新的,最后就只剩最后一次的结果。
    错误示例:

    for article in articles:
        title = article.find("h2").text
    print(title)  # 只显示最后一篇文章的标题
    

    修正后:

    titles = []
    for article in articles:
        titles.append(article.find("h2").text)
    print(titles)  # 显示所有文章标题
    

如果这些情况都不是你的问题,可以把你的代码片段贴出来,我帮你再仔细看看!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 04:15:33