我正在学习美汤,我遇到了一个十字问题。这就是在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()
...
但问题是,有时不同的页面有不同的参数,或者参数的顺序不同,所以我无法使用索引进行访问。查看链接:
https://www.nekretnine.rs/stambeni-objekti/stanovi/centar-zmaj-jovina-salonac-id1003/NkmUEzjEFo0/
我怎么能确定我将总是抓取我想要的参数呢?之后,每个参数都会进入列表,因此如果某个参数现在确实存在,它应该将''
添加到列表中
发布于 2019-10-31 07:13:00
在这种情况下,您可能希望这样做,而不是使用索引,因为后者可能会将您引向错误的dd。当您采用以下方法时,您所需要做的就是替换:contains('')
中的文本以获得它们的dd,如Transakcija
、Vrsta 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)
https://stackoverflow.com/questions/58637730
复制