python - Beautifulsoup - 获取不在特定标签之间的文本(之后但之前
)?
问题描述
我环顾四周,找到了有效或假设适用于这个确切问题的解决方案,但它不适用于这种情况。任何人都有理由为什么它会在这里工作,而不是在这里?或者只是简单地显示我做错了什么,我可以找出差异。
请记住,我只是给出了一个 html 片段,它包含更多具有相同span
和class='boldText'
. 我特别想要标签Status:
作为其文本,然后是下一个文本/内容。
import bs4
html1 = '''<span class="boldText"><b>Date:</b> </span>12/04/2018<br/>
<span class="boldText"><b>Name:</b> </span>Aaron Rodgers<br/>
<span class="boldText"><b>Status:</b> </span>Questionable<br/><br/>
<br/>
<br/><br/><br/>'''
soup = bs4.BeautifulSoup(html1,'html.parser')
status = soup.find(text='Status:').next_sibling
我只是想获取文本:'Questionable'
所以寻找输出:
>>> print (status)
>>> Questionable
解决方案
问题是b
标签没有兄弟姐妹。像这样格式化时更容易看到:
<span class="boldText">
<b>Status:</b>
</span>
Questionable
<br/>
怎么看b
是独生子了span
?字符串 "Questionable" 实际上是 parent 的兄弟span
,因此您需要按如下方式导航到它:
print(soup.find('b', string='Status:').parent.next_sibling)
# => 'Questionable'
推荐阅读
- javascript - 正则表达式组排除组内的子字符串
- python - Python,问题获取带有按钮的组合框的值
- java - 如何将json转换为没有换行符和其他格式的字符串
- elixir - Elixir - 过滤具有给定日期范围内重叠日期的项目列表
- java - Java 服务 - SOAP 响应总是返回 NULL 到 .NET
- python - 如何在 PARENT 管理页面上显示 ForeignKey 模型的下拉列表
- c - 如何修复此代码中的分段错误
- javascript - 如何使用 Tableau Web 数据连接器创建没有列数据类型的表格列标题?
- java - Spring 3.0 中的 HttpComponentsClientHttpRequestFactory
- c# - 如何创建 C# 类以反序列化以方括号开头和结尾的 JSON 字符串