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

使用BeautifulSoup无法抓取数据,求助调试目录生成代码

问题修复方案

你的代码有几个明显错误导致无法正常抓取数据,直接修正如下:

代码里的问题点

  • 代码缩进不规范,影响执行逻辑
  • tile_container = soup.find("div", id="tileContaine 这行:id值的字符串未闭合,且单词大概率拼写错误(应该是tileContainer)
  • 未处理请求失败的情况,比如网络问题、网页返回错误

修正后的完整代码

import requests
from bs4 import BeautifulSoup

# 替换成你要抓取的目标网址
url = "你的目标URL"

try:
    # 发送请求并检查是否成功
    response = requests.get(url)
    response.raise_for_status()
    
    soup = BeautifulSoup(response.content, "html.parser")
    # 修正id参数的拼写和引号问题
    tile_container = soup.find("div", id="tileContainer")
    
    if tile_container:
        # 根据页面实际结构提取目录内容,这里用h2/h3标签示例,可自行调整
        directory_items = tile_container.find_all(["h2", "h3"])
        for num, item in enumerate(directory_items, 1):
            print(f"{num}. {item.get_text(strip=True)}")
    else:
        print("页面中未找到id为tileContainer的div容器")
except requests.exceptions.RequestException as e:
    print(f"请求出错:{e}")
except Exception as e:
    print(f"处理过程出错:{e}")

关键说明

  1. 先确保请求成功:用response.raise_for_status()可以直接捕获4xx/5xx这类HTTP错误
  2. 必须保证find方法的参数正确:id名称要和页面实际的HTML完全一致,字符串引号要闭合
  3. 找到容器后,要根据目标页面的真实HTML结构来提取目录元素(比如有的页面用p标签、自定义类名,需要调整find_all的参数)
  4. 增加异常处理可以避免程序因为小问题直接崩溃,方便排查错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:25:03