【问题标题】:Finding tag value with another tag in Beautiful soup在 Beautiful soup 中使用另一个标签查找标签值
【发布时间】:2018-07-26 16:36:05
【问题描述】:

我正在尝试从 a 标记内的 span 标记中获取值(餐厅名称)。

有很多 a 标签和 span 标签。我使用此代码到达这里:

soup.find_all("a", "biz-name js-analytics-click")

<a class="biz-name js-analytics-click" data-analytics-label="biz-name" data- 
hovercard-id="hN6KsYexY7_4VPAw0mHtMA" href="/biz/szechuan-restaurant- 
charlottesville?osq=chinese"><span>Szechuan Restaurant</span></a>

所以基本上我不知道如何找到 span 标记的值,该标记位于具有特定 class= "biz-name js 的 a 标记中-分析点击”

【问题讨论】:

    标签: html python-3.x beautifulsoup


    【解决方案1】:

    试试span.text

    例如:

    from bs4 import BeautifulSoup
    s = """<a class="biz-name js-analytics-click" data-analytics-label="biz-name" data- 
    hovercard-id="hN6KsYexY7_4VPAw0mHtMA" href="/biz/szechuan-restaurant- 
    charlottesville?osq=chinese"><span>Szechuan Restaurant</span></a>"""
    
    soup = BeautifulSoup(s, "html.parser")
    for tag in soup.find_all("a", "biz-name js-analytics-click"):
        print(tag.span.text)
    

    或者如果 "biz-name js-analytics-click" 是唯一的那么

    print( soup.find("a", "biz-name js-analytics-click").span.text )
    

    输出:

    Szechuan Restaurant
    

    【讨论】:

      【解决方案2】:

      无需让代码复杂化,BeautifulSoup 支持 select()select_one() (docs here) 方法形式的 CSS 选择器。

      如果你想在 &lt;a&gt; 标签内找到 &lt;span&gt; 标签,类 biz-namejs-analytics-click,使用选择器 'a.biz-name.js-analytics-click span'

      data = """<a class="biz-name js-analytics-click" data-analytics-label="biz-name" data-
      hovercard-id="hN6KsYexY7_4VPAw0mHtMA" href="/biz/szechuan-restaurant-
      charlottesville?osq=chinese"><span>Szechuan Restaurant</span></a>"""
      
      from bs4 import BeautifulSoup
      
      soup = BeautifulSoup(data, 'lxml')
      print(soup.select_one('a.biz-name.js-analytics-click span').text)
      

      输出:

      Szechuan Restaurant
      

      【讨论】:

        猜你喜欢
        • 2017-11-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-02-17
        • 1970-01-01
        • 1970-01-01
        • 2019-02-20
        • 2012-08-09
        相关资源
        最近更新 更多