使用BeautifulSoup和Python删除特定的“dd”标记

2024-09-28 01:27:03 发布

您现在位置: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:27:03

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

import requests
from bs4 import BeautifulSoup

url = "https://www.nekretnine.rs/stambeni-objekti/stanovi/zemun-krajiska-41m-bela-fasadna-cila-odlican/NkiRX4sq4Cy/"

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)

相关问题 更多 >

    热门问题