如何使用BeautifulSoup提取不同类型的粗体文本及其之间的文本?

时间:2018-09-19 00:17:44

标签: html beautifulsoup

我必须解析具有粗体文本作为部分标识符的html文档。但是粗体文本的形式不同,下面显示了一些示例。

使用美丽的汤,我能够解析它们,但是不得不写很多其他东西来处理不同类型的粗体。有没有找到找到这种粗体文本和介于两者之间的文本(如果使用了其他许多文本)的最佳方法。

enter image description here

<div style="line-height:120%;padding-bottom:12px;font-size:10pt;">
  <font style="font-family:inherit;font-size:10pt;font-weight:bold;">List 1.&nbsp;&nbsp;&nbsp;&nbsp;Work</font>
</div>
<td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;">
  <div style="text-align:left;font-size:10pt;">
    <font style="font-family:inherit;font-size:10pt;font-weight:bold;">List 1.</font>
  </div>
</td>
<td style="vertical-align:top;padding-left:2px;padding-top:2px;padding-bottom:2px;padding-right:2px;">
  <div style="text-align:left;font-size:10pt;">
    <font style="font-family:inherit;font-size:10pt;font-weight:bold;">Work.</font>
  </div>
</td>
<p style="font-family:times;text-align:justify">
  <font size="2">
    <a name="de42901_List_1._Work"> </a>
    <a name="toc_de42901_2"> </a>
  </font>
  <font size="2"><b>  List&nbsp;1.&nbsp;&nbsp;&nbsp;&nbsp;Work    <br>    </b></font>
</p>
<p style="font-family:times;text-align:justify">
  <font size="2">
    <a name="da18101_List_1._Work"> </a>
    <a name="toc_da18101_3"> </a>
  </font>
  <font size="2"><b>  List&nbsp;1.&nbsp;&nbsp;&nbsp;&nbsp;</b></font>
  <font size="2"><b><i>Work    <br>    </i></b></font>
</p>

1 个答案:

答案 0 :(得分:0)

使用split and join功能删除不需要的/ n / b / t和&nbsp:

soup = BeautifulSoup(data, 'html.parser')
data = soup.find_all('b')
for i in data :
    final = ' '.join([x for x in i.text.split()])
    print (final)

它将以相同的格式排列您的数据,希望它可以解决您的查询