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

如何使用Beautiful Soup提取指定div中的特定文本(仅获取Developer)

解决提取"Developer"文本的问题

我来帮你搞定这个问题!你遇到的情况是因为直接获取div的text属性时,BeautifulSoup会把该div下所有子元素的文本内容直接拼接在一起,所以才出现了"DeveloperActorAs Kathiravan"这种连在一起的结果。下面给你两种可行的解决办法:

方法一:精准定位子元素(推荐)

如果能拿到原始的HTML结构,最好直接定位到包含"Developer"的子元素,这样最准确。比如假设你的HTML结构类似这样:

<div class="__cast-member">
  <span>Developer</span>
  <span>Actor</span>
  <span>As Kathiravan</span>
</div>

你可以通过以下代码获取目标文本:

from bs4 import BeautifulSoup

# 替换成你的原始HTML内容
html_content = """你的HTML代码"""
soup = BeautifulSoup(html_content, 'html.parser')
cast_div = soup.find('div', class_='__cast-member')

# 获取第一个子元素的文本(如果"Developer"在第一个子元素里)
developer_text = cast_div.contents[0].strip()
print(developer_text)  # 输出: Developer

如果"Developer"所在的子元素有专属class,那就更精准了,比如子元素class是primary-role,可以改成:

developer_text = cast_div.find('span', class_='primary-role').text.strip()

方法二:字符串处理(适配无法定位子元素的情况)

如果没办法获取原始HTML结构,只能处理已经得到的拼接文本,那可以用字符串拆分或者正则表达式来提取:

字符串拆分法

利用"Developer"后面固定跟着"Actor"这个特点拆分:

full_text = "DeveloperActorAs Kathiravan"
developer_text = full_text.split('Actor')[0].strip()
print(developer_text)  # 输出: Developer

正则表达式法

如果文本开头就是目标单词,用正则匹配开头的单词:

import re

full_text = "DeveloperActorAs Kathiravan"
match_result = re.match(r'^\w+', full_text)
if match_result:
    developer_text = match_result.group()
    print(developer_text)  # 输出: Developer

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:15:33