提取关键部分的字符串,其中内容包含在<b>标记中

时间:2019-03-17 16:48:58

标签: python

从网络请求中我得到了这个答案:

    <table>

    <tr>


    <td style="font-size:110%;color:blue;font-weight:bold">quiero</td>

    <td style="font-style:italic;">categoría&nbsp;&nbsp;&nbsp;<b>AUX</b></td>


    <td style="font-style:italic;">lema&nbsp;&nbsp;&nbsp;<b>QUERER</b></td>


    <td style="font-style:italic;">rasgos&nbsp;&nbsp;&nbsp;<b>&nbsp;singular&nbsp;&nbsp;1&nbsp;&nbsp;presente indicativo&nbsp;</b></td>


    </tr>


    <tr>


    <td style="font-size:110%;color:blue;font-weight:bold">ser</td>

    <td style="font-style:italic;">categoría&nbsp;&nbsp;&nbsp;<b>V</b></td>


    <td style="font-style:italic;">lema&nbsp;&nbsp;&nbsp;<b>SER</b></td>


    <td style="font-style:italic;">rasgos&nbsp;&nbsp;&nbsp;<b>&nbsp;infinitivo&nbsp;</b></td>


    </tr>


    <tr>


    <td style="font-size:110%;color:blue;font-weight:bold">el</td>

    <td style="font-style:italic;">categoría&nbsp;&nbsp;&nbsp;<b>ART</b></td>

    <td style="font-style:italic;">lema&nbsp;&nbsp;&nbsp;<b>EL</b></td>


    <td style="font-style:italic;">rasgos&nbsp;&nbsp;&nbsp;<b>&nbsp;masculino&nbsp;&nbsp;singular&nbsp;</b></td>


    </tr>


    <tr>


    <td style="font-size:110%;color:blue;font-weight:bold">mejor</td>

    <td style="font-style:italic;">categoría&nbsp;&nbsp;&nbsp;<b>ADJ</b></td>


    <td style="font-style:italic;">lema&nbsp;&nbsp;&nbsp;<b>MEJOR</b></td>


    <td style="font-style:italic;">rasgos&nbsp;&nbsp;&nbsp;<b>&nbsp;singular&nbsp;</b></td>


    </tr>


    </table>

但是我只想获取<b>标记内的所有内容。有最佳的方法吗?据我所知,我只能使用.split来实现它,但我认为这不是一种非常优雅或非常理想的实现方式

这是我想要的输出:

v
SER
&nbsp;infinitivo&nbsp;
ART
El
&nbsp;masculino&nbsp;&nbsp;singular&nbsp;
.
.
.

这是我对请求的字符串响应

1 个答案:

答案 0 :(得分:0)

您可以使用html.parser

from html.parser import HTMLParser

class BExtractor(HTMLParser):
    def __init__(self, *args, **kwargs):
        super(BExtractor, self).__init__(*args, **kwargs)
        self.is_b = True

    def handle_starttag(self, tag, attrs):
        if tag == "b":
            self.is_b = True

    def handle_endtag(self, tag):
            self.is_b = False

    def handle_data(self, data):
        if self.is_b:
            print(data)

parser = BExtractor()
parser.feed("""html""")