BeautifulSoup抓文本

时间:2016-07-09 04:51:13

标签: python beautifulsoup

我对如何使用BeautifulSoup得到一些东西感到有点困惑,我试图抓住的HTML看起来像这样:

<div class="txt-block"> 
    <h4 class="inline">Gross:</h4> 
    $408,992,272
</div>

我想抓住美元数字。 到目前为止,我有这个,但它并没有让我得到我想要的东西。

gross = data.findAll('h4',class_='inline')

数据是我的beautifulsoup对象,还有h4标记的多个实例,class_=inline

我可以抓住所有h4标签,只要我能在那里得到数字,然后我就可以正则表示它。

1 个答案:

答案 0 :(得分:1)

如果您只想要美元金额,请查找 txt-block div 设置 recursive = False 中的文字,这样您就不会#39 ; t从其子节点获取任何文本并删除任何空格:

In [27]:h = """<div class="txt-block">
                   <h4 class="inline">Gross:</h4>
                    $408,992,272
               </div>"""

In [28]: soup = BeautifulSoup(h,"lxml")

In [29]: div = soup.find("div",class_="txt-block")

In [30]: "".join(div.find_all(text=True, recursive=False)).strip()
Out[30]: '$408,992,272'

或者如果您知道它始终是最后一个item元素,您可以使用:

In [40]: div.contents[-1].strip()
Out[40]: '$408,992,272'