【问题标题】:How to select specific div using BeautifulSoup when multiple divs have the same class name no id tag?当多个div具有相同的类名而没有id标签时,如何使用BeautifulSoup选择特定的div?
【发布时间】:2020-07-05 12:34:58
【问题描述】:

当多个div具有相同的类名而没有id标签时,我不知道如何使用BeautifulSoup选择特定的div。

我要抓取的网页:https://www.helpmefind.com/rose/l.php?l=2.65689

我想独立选择特定 div 的内容,然后传递给 csv 文件。由于 find_all 返回多个 div 并且我不知道如何进一步限制,因此卡住了。

rose_div = rose.find_all("div", class_="hdg")  

返回:

[<div class="hdg">HMF Ratings:</div>, <div class="hdg">Origin:</div>, <div class="hdg">Class:</div>, <div class="hdg">Bloom:</div>, <div class="hdg">Parentage:</div>, <div   class="hdg">Notes:</div>, <div class="hdg"> </div>]

我想在 div 下单独选择:

<div class="hdg">Origin:</div>

<div class="hdg">Class:</div>

<div class="hdg">Bloom:</div>

<div class="hdg">Parentage:</div>

【问题讨论】:

    标签: html python-3.x web-scraping beautifulsoup


    【解决方案1】:

    您可以使用 CSS 选择器 div.hdg:contains("Origin:") 选择包含单词“Origing:”的 &lt;div&gt;class="hdg"。要获取类grp 的下一个元素,您可以添加+ .grp

    例如:

    import requests
    from bs4 import BeautifulSoup
    
    
    url = 'https://www.helpmefind.com/rose/l.php?l=2.65689'
    soup = BeautifulSoup( requests.get(url).content, 'html.parser' )
    
    origin = soup.select_one('div.hdg:contains("Origin:") + .grp').text
    class_ = soup.select_one('div.hdg:contains("Class:") + .grp').text
    bloom = soup.select_one('div.hdg:contains("Bloom:") + .grp').text
    parentage = soup.select_one('div.hdg:contains("Parentage:") + .grp').text
    
    print(origin)
    print(class_)
    print(bloom)
    print(parentage)
    

    打印:

    Bred by Arai (Japan, before 2009). 
    Floribunda.  
    Light pink and white, yellow stamens.  Single (4-8 petals), cluster-flowered bloom form.  Blooms in flushes throughout the season.  
    If you know the parentage of this rose, or other details, please contact us.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 2023-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 2011-12-28
      相关资源
      最近更新 更多