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

如何用BeautifulSoup获取指定div下所有标签内的文本内容?

抓取指定容器下所有文本的方法

根据你的需求,不管目标div下是p标签还是列表元素,都可以直接通过递归获取容器内所有子元素文本的方式实现,以下是两种常用工具的具体实现:

1. 静态页面:用BeautifulSoup(Python)

如果页面内容是静态渲染的,直接用requests+BeautifulSoup就能搞定:

import requests
from bs4 import BeautifulSoup

# 获取页面源码
url = "https://foodkoreadubai.com/products/teazen-organic-barley-sprout-powder-2g-x-10-sticks#description"
response = requests.get(url)
soup = BeautifulSoup(response.text, 'html.parser')

# 定位目标div
target_div = soup.select_one('.station-tabs-content-inner')

# 提取所有文本,用换行符分隔不同元素的内容
full_text = target_div.get_text(separator='\n', strip=True)
print(full_text)

get_text(separator='\n', strip=True)会自动遍历div下的所有子元素(包括p、列表标签等),把所有文本提取并整理成易读的格式。

2. 动态页面:用Selenium(Python)

如果页面内容是通过JavaScript动态加载的,就得用Selenium模拟浏览器渲染:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化浏览器(这里以Chrome为例,需提前配置ChromeDriver)
driver = webdriver.Chrome()
driver.get("https://foodkoreadubai.com/products/teazen-organic-barley-sprout-powder-2g-x-10-sticks#description")

# 等待目标div加载完成
wait = WebDriverWait(driver, 10)
target_div = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "station-tabs-content-inner")))

# 提取所有文本
full_text = target_div.text
print(full_text)

# 关闭浏览器
driver.quit()

Selenium的.text属性同样会递归获取该元素下所有子元素的可见文本,不管内部是p还是列表都能统一提取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 23:53:22