获取<b>标记中的下一个文本内容

时间:2015-08-03 15:33:52

标签: python html parsing beautifulsoup bs4

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

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

这样的事情:

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

输出:你&#39; 1&#39;

1 个答案:

答案 0 :(得分: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')