使用BeautifulSoup获取div的分隔内容

3 投票
2 回答
2123 浏览
提问于 2025-04-15 23:45

我想从BeautifulSoup中提取出正确分隔的文本,如果需要的话,把标签转换成空格。问题是换行符被压缩了,而且像<br/>这样的标签没有被当作空格处理。

<div class="companyInfo">
    <p class="identInfo">
        <acronym title="Standard Industrial Code">
            SIC
        </acronym>
        :
        <a href="/?SIC=3674">
            3674
        </a>
        - SEMICONDUCTORS &amp; RELATED DEVICES
        <br />
        State location: CA
    </p>
</div>

如果我运行BeautifulSoup(sampleHTML).text,我会得到以下内容:

u'SIC:3674- SEMICONDUCTORS &amp; RELATED DEVICESState location: CA'

我希望得到的结果是能够正确处理空格的,比如这样:

u'SIC : 3674 - SEMICONDUCTORS &amp; RELATED DEVICES State location: CA'

有什么建议吗?谢谢!

2 个回答

3

你也可以使用getText()这个函数。getText()有一个可选的参数,可以用来设置分隔符。

BeautifulSoup(sampleHTML).getText(' ').strip()

strip()这个函数是用来去掉字符串开头和结尾的空格的。

1

我最后选择使用内容方法来获取我想要的信息,这比使用文本方法要好,因为这样就不需要进行一些文本解析了。

所以,总的来说,使用内容方法,或者可以看看Jouni留下的链接,那里有其他的答案。

撰写回答