使用BeautifulSoup和Python取消特定的'dd'标记

2024-09-28 01:24:42 发布

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

我在学习美素,我遇到了一个难题。这就是取消html中的dd标记。查看下面的图片,我想得到红色区域的参数。问题是我不知道如何访问它们。我试过这个:

    kvadratura = float(nek_html.find('span', class_='d-inline-block mt-auto').text.split(' ')[0])
    jedinica_mere = nek_html.find('span', class_='d-inline-block mt-auto').text.split(' ')[1].strip()
...

enter image description here

但问题是,有时不同的页面有不同的参数,或不同的参数顺序,所以我不能访问索引。查看链接:

https://www.nekretnine.rs/stambeni-objekti/stanovi/centar-zmaj-jovina-salonac-id1003/NkmUEzjEFo0/

https://www.nekretnine.rs/stambeni-objekti/stanovi/prodajemo-stan-milica-od-macve-mirijevo-46m2-nov/NkNruPymNHy/

我怎样才能确定我将总是废弃我想要的参数? 每个参数随后进入列表,因此如果某个参数现在确实存在,它应该将''添加到列表中


Tags: texthttpsauto参数htmlwwwinlinefind
1条回答
网友
1楼 · 发布于 2024-09-28 01:24:42

在这种情况下,您可能希望这样做,而不是使用索引,因为后者可能会导致错误的dd。当您使用以下方法时,您所需要做的就是替换:contains('')中的文本以获得它们的dd,如TransakcijaVrsta stana

import requests
from bs4 import BeautifulSoup

url = "https://www.nekretnine.rs/stambeni-objekti/stanovi/centar-zmaj-jovina-salonac-id1003/NkmUEzjEFo0/"

res = requests.get(url)
soup = BeautifulSoup(res.text,"lxml")
Kategorija = soup.select_one(".base-inf .dl-horozontal:has(:contains('Kategorija:')) > dd")
Kategorija = Kategorija.get_text(strip=True) if Kategorija else ""
print(Kategorija)

相关问题 更多 >

    热门问题