python - 如何在 Beautiful Soup 中找到特定的 div 文本
问题描述
我有以下html:
from bs4 import BeautifulSoup as soup
html_doc = """<div class="__cast-member" content="Vishal Krishna Reddy" itemprop="name"><div class="__cast-image wow fadeIn"><meta content="https://in.bmscdn.com/iedb/artist/images/website/poster/large/vishal-krishna-reddy-16275-24-03-2017-15-17-54.jpg" itemprop="image"><img alt="Vishal Krishna Reddy" data-error="//in.bmscdn.com/webin/profile/user.jpg" data-lazy="//in.bmscdn.com/iedb/artist/images/website/poster/large/vishal-krishna-reddy-16275-24-03-2017-15-17-54.jpg" title="Vishal Krishna Reddy"/></meta></div><br/>Developer<br><span class="__role">Actor</span><br><span class="__characterName">As Kathiravan</span></br></br></div>"""
html = soup(html_doc, "html.parser")
Cast=html.find("div", {"class":"__cast-member"})
print Cast.text
输出:DeveloperActorAs Kathiravan
但我只需要输出:开发人员
解决方案
您可以使用该.next_sibling
属性来获取所需的文本。找到带有first的<div>
标签。class="__cast-image wow fadeIn"
您想要的文本位于此标记之后。所以,.next_sibling
在这个标签上使用。但首先你会得到<br/>
,所以再次使用它。
>>> soup.find('div', class_='__cast-image').next_sibling
<br/>
>>> soup.find('div', class_='__cast-image').next_sibling.next_sibling
'Developer'
推荐阅读
- c++ - C++ 捕获可变参数模板参数中所有指针包装器的值
- reactjs - 使用反应状态附加到对象
- python - 仅过滤具有熊猫条件的组中的一行
- selenium - AttributeError 问题:'WebDriver' 对象没有属性'page'
- python - Ubuntu Virtualbox:重启后 PYTHONPATH 消失了
- javascript - 如何使用对象制作可以根据您的回复发送消息的聊天机器人?
- visual-studio-code - VSCode - 格式化 - 每当我关闭标签时,它都会跳到最左边。怎么修?
- c++ - 打印向量值时二进制表达式错误的无效操作数
- http - Go:异步启动 HTTP 服务器,但如果启动失败返回错误
- php - 改造 2 服务器不接收 POST Android