【问题标题】:Get value from first span tag in beautifulsoup从beautifulsoup中的第一个span标签获取价值
【发布时间】:2023-10-28 16:02:01
【问题描述】:

我想知道如何从这个 beautifulsoup 代码中获得 $39,465,077,974.88

<td><span>$39,465,077,974.88</span><div><span class="sc-15yy2pl-0 kAXKAX" style="font-size:12px;font-weight:600"><span class="icon-Caret-up"></span>4.59<!-- -->%</span></div></td>

我是网络爬虫的新手????,希望你们有一个明确的解释。

【问题讨论】:

    标签: python web-scraping beautifulsoup


    【解决方案1】:

    尝试使用css selector

    from bs4 import BeautifulSoup
    
    soup = BeautifulSoup(html, "html.parser")
    
    print(soup.select_one("td > span").text)
    

    $39,465,077,974.88
    

    【讨论】:

    • 谢谢。为什么 td > span ???
    • 选择直接在名为 的元素中的名为 的元素
    【解决方案2】:

    你可以得到这样的值。由于您需要的值在 &lt;span&gt; 内,即在 &lt;td&gt;

    • 首先使用find()选择&lt;td&gt;标签

      td = soup.find('td')
      
    • 接下来选择td中的&lt;span&gt;标签。

      sp = td.find('span')
      
    • 打印sp的文字

      print(sp.text.strip())
      

    这是完整的代码

    from bs4 import BeautifulSoup
    
    s = """<td><span>$39,465,077,974.88</span><div><span class="sc-15yy2pl-0 kAXKAX" style="font-size:12px;font-weight:600"><span class="icon-Caret-up"></span>4.59<!-- -->%</span></div></td>"""
    
    soup = BeautifulSoup(s, 'lxml')
    td = soup.find('td')
    sp = td.find('span')
    print(sp.text.strip())
    
    $39,465,077,974.88
    

    【讨论】:

      最近更新 更多