我对如何使用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
标签,只要我能在那里得到数字,然后我就可以正则表示它。
答案 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'