我对如何使用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标记,只要我也可以在其中获取编号,那么我就可以对其进行正则表达式。

最佳答案

如果您只想要美元金额,请在txt-block div设置中将文本find_all设为recursive = False,这样就不会从其子级中获取任何文本并去除任何空格:

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'

关于python - BeautifulSoup抓取文字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38278467/

10-16 08:46