我很好奇是否有办法只获取font标记中的最后一个文本。

<font face="Arial, Helvetica" size="5">
            No previous.<br><br>
            <b>Number :</b> 1</font>


像这样:

soup.find('b',text='Number :').find_next_content



  输出:u'1'

最佳答案

要获取紧随<b>元素的文本:

In [18]: soup.find('b', text='Number :').next_sibling
Out[18]: ' 1'


要在<font>元素内获取最终文本:

In [24]: soup.find('font').contents[-1]
Out[24]: ' 1'


示例程序:

from bs4 import BeautifulSoup

soup = '''<font face="Arial, Helvetica" size="5">
            No previous.<br><br>
            <b>Number :</b> 1</font>'''
soup = BeautifulSoup(soup)

result0 = soup.find('b', text='Number :').next_sibling
result1 = soup.find('font').contents[-1]
assert(result0 == ' 1')
assert(result1 == ' 1')

关于python - 获取<b>标记中的下一个文本内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31791292/

10-12 18:46