如何查找具有特定值的文本beauthulsoup python2.7

2024-09-27 21:26:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我有下面的html:我正在尝试将以下数字保存为变量,现在可以使用,7148.49,掀背式,很好。我遇到的问题是,我无法独立地将它们拉出,因为它们没有附加的类。我在想怎么解决这个问题。下面是我的html然后徒劳的代码来解决这个问题。在

</div>
<div class="car-profile-info">
<div class="col-md-12 no-padding">
<div class="col-md-6 no-padding">
<strong>Status:</strong> <span class="statusAvail">  Available Now </span><br/>
<strong>Min. Booking </strong>7 Days ($148.89)<br/>
<strong>Style: </strong>Hatchback<br/>
<strong>Transmission: </strong>Automatic<br/>
<strong>Condition: </strong>Good<br/>
</div>

Python2.7代码:-这给了我整个html!在

^{pr2}$

Tags: no代码brdivhtml数字colcar
2条回答

class="car-profile-info"查找div元素下的所有强元素,对于找到的每个元素,获得.next_siblings直到遇到{}元素:

from bs4 import BeautifulSoup, Tag

for strong in soup.select(".car-profile-info strong"):
    label = strong.get_text()
    value = ""
    for elm in strong.next_siblings:
        if getattr(elm, "name") == "br":
            break
        if isinstance(elm, Tag):
            value += elm.get_text(strip=True)
        else:
            value += elm.strip()

    print(label, value)

您可以使用“.next_sibling”导航到您想要的文本,如下所示:

for i in soup.select("strong"):
   if i.get_text(strip=True) == "Min. Booking":
       print(i.next_sibling) #this will print: 7 Days ($148.89)

另请参见http://www.crummy.com/software/BeautifulSoup/bs4/doc/#going-sideways

相关问题 更多 >

    热门问题