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

如何使用BeautifulSoup与Requests获取网页嵌套div内容?

如何用BeautifulSoup和Requests抓取嵌套div内容?

别担心,你其实已经走在正确的路上啦!你之前写的代码里,变量w完全是可以继续调用find/find_all方法的有效对象——只是你误以为它不能而已。

当你通过soup.find()获取到结果时,只要结果不是None,它就是一个Tag对象(属于BeautifulSoup的核心对象家族),和最开始的soup对象一样,支持所有的查找方法,完全可以用来嵌套查找内部元素。

给你整理了一份更健壮的完整示例代码,包含了请求校验和非空判断(避免找不到元素时报错):

from bs4 import BeautifulSoup
import requests

url = "你的目标网页URL"
r = requests.get(url)

# 先确认请求是否成功
if r.status_code == 200:
    soup = BeautifulSoup(r.content, "lxml")
    # 定位外层的content div
    w = soup.find("div", {"id":"content"})
    
    # 先检查外层div是否存在
    if w:
        # 直接在w内部查找嵌套的目标div
        w2 = w.find("div", {"id": "some nested div"})
        
        # 检查嵌套div是否找到,再提取内容
        if w2:
            print("抓取到的内容:", w2.get_text(strip=True))
        else:
            print("没找到id为'some nested div'的嵌套元素")
    else:
        print("页面中找不到id为'content'的div")
else:
    print(f"请求网页失败,状态码:{r.status_code}")

另外给你几个实用小技巧:

  • 查找元素时可以用更简洁的写法:w.find("div", id="some nested div")(不用包裹成字典也能正常工作)
  • 如果要获取多个同类型的嵌套元素,用find_all()方法,它会返回一个包含所有匹配Tag的列表
  • 每次查找后都做非空判断,能有效避免找不到元素时抛出AttributeError异常

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:10:28