为了账号安全,请及时绑定邮箱和手机立即绑定

Beautiful Soup:从深度嵌套的 <div> 中提取

Beautiful Soup:从深度嵌套的 <div> 中提取

Go
神不在的星期二 2023-08-21 16:27:47
尝试从以下位置提取消息文本:<div class="Item ItemDiscussion Role_Member" id="Discussion_2318"><div class="Discussion"><div class="Item-BodyWrap"><div class="Item-Body"><div class="Message">                Hello<br/>I have a very interesting observation on nature of birds in Alaska ...  <br/> Was there  10/19/18 has anyone heard of this     </div><div class="ReactionRecord"></div><div class="Reactions"></div> </div></div></div></div>我已经得到了这一点:tag = soup.find('div', {'class' : 'ItemDiscussion'})接下来我试图继续:s = str((tag.contents)[1])sp = BeautifulSoup(s)sp.contents但这并没有多大帮助。如何从中获取消息文本<div class="Message">?
查看完整描述

2 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

您可以直接从汤中找到该元素。

discussion_div = soup.find("div", {"class": "ItemDiscussion"})
message_text = discussion_div.find("div", {"class": "Message"}).text


查看完整回答
反对 回复 2023-08-21
?
四季花海

TA贡献1811条经验 获得超5个赞

您可以通过在元素中输入CSS 选择器来使用select_one()函数选择任何元素。select_one() 函数只会返回一个元素,如果您想要多个元素,那么您可以使用 select() 它将返回找到的元素列表。这是给你的例子,

soup = BeautifulSoup(html, "html.parser")
print soup.select_one("div.Item div.Discussion div.Item-BodyWrap div.Item-Body div.Message").text

如果元素是唯一的,您还可以使用单个类来选择元素。

print soup.select_one("div.Message").text


查看完整回答
反对 回复 2023-08-21
  • 2 回答
  • 0 关注
  • 115 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信