使用BeautifulSoup获取div的分隔内容

时间:2010-06-09 19:04:57

标签: python beautifulsoup

我希望从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 个答案:

答案 0 :(得分:2)

您也可以使用getText()函数。 getText()具有分隔符的可选参数。

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

strip()用于删除任何前导和尾随空格。

答案 1 :(得分:1)

我最终使用内容方法从各个节点获取我想要的信息。事实证明这比使用text方法更好,因为它避免了对某些文本解析的需要。

因此,最后,使用内容方法或按照Jouni离开的链接并查看答案。