【问题标题】:Scraping specific 'dd' tags with BeautifulSoup and Python使用 BeautifulSoup 和 Python 抓取特定的“dd”标签
【发布时间】:2021-02-01 06:59:38
【问题描述】:

我正在学习beautifulsoup,但遇到了一个问题。那就是在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()
...

但问题是有时不同的页面有不同的参数,或者参数的顺序不同,所以我无法使用 index.html 访问。查看链接:

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/

我如何确定我总是会抓取我想要的参数? 每个参数之后都会进入列表,因此如果某些参数现在确实存在,则应将 '' 添加到列表中

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    在这种情况下,您可能想要这样做,而不是使用 index,因为后者可能会导致您进入错误的 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)
    

    【讨论】:

    • 非常感谢。我尝试使用 Ctrl+F 在页面上查找元素,但得到 0 个结果 .base-inf .dl-horozontal:has(:contains('Kategorija:')) > dd。我只能找到这个.base-inf .dl-horozontal ..!! ..实际上我认为帖子中的链接不正确,所以我尝试了另一个链接https://www.nekretnine.rs/stambeni-objekti/stanovi/prodajemo-stan-milica-od-macve-mirijevo-46m2-nov/NkNruPymNHy/,但对我来说同样的问题(我找不到元素)..奇怪的是我从你的代码中得到了结果已发布,但我无法获取 css 选择器的结构
    • 查看编辑以及使用的链接@YasserKhalil。
    • 看看这个image
    • 现在我得到了你的问题。您无法使用开发工具找到确切的模式,因为它是我使用的伪选择器。
    • 顺便说一句,你愿意让this post 去提供任何解决方案吗?
    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 2014-04-12
    • 1970-01-01
    • 2013-07-26
    • 2018-04-06
    • 2021-06-05
    • 1970-01-01
    • 2020-03-11
    相关资源
    最近更新 更多