【发布时间】:2018-03-14 02:50:59
【问题描述】:
假设我想提取每集 24 分钟的信息或评级下的 N13 信息。现在这只是代码的一部分,一些 span 标签不包含 dark_text 类,而是其他东西。但是当我寻找包含评级的标签时,当我找到它时,我无法提取它是什么评级,因为N13 现在在div 标签下,而不是span,但因为我正在寻找'评级”或“持续时间”我必须寻找“跨度”标签。而且 Beautiful Soup 不允许你做findAll('div').findAll('span', {'class':'...'}),所以如果它找到我正在寻找的span 标签,我就无法返回div 标签。
当我执行for 循环时,它会打印出所有这些额外的Nones 以及其他内容。
有人对如何很好地解析这个有任何提示吗?
问题实际上只是如何在<span> 标记中查找位于div 标记下的内容,但一旦找到然后提取整个div 标记,或者最好甚至是仅在div 中的内容标签但不在span 标签中?事实证明这比我预期的要复杂。
from bs4 import BeautifulSoup
x= '''<div>
<a href="javascript:void(0);" onclick="$('#score143583').toggle()">Overall Rating</a>:
2
</div>
<div class="spaceit">
<span class="dark_text">Duration:</span>
24 min. per ep.
</div>
<div>
<span class="dark_text">Rating:</span>
N13
</div>'''
bs = BeautifulSoup(x, 'html.parser')
【问题讨论】:
-
您能否添加您的输出预期的样子?
-
我正在寻找“N13”或“评级:N13”,持续时间相同:24 分钟,总体评级:2。不知道如何获得,但一个只是 div.text 另一个是 div.text 忽略 span.text
标签: python html parsing beautifulsoup tags