首页 > 解决方案 > 在 Beautiful soup 中使用另一个标签查找标签值

问题描述

我正在尝试从 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>

所以基本上我不知道如何找到一个跨度标签的值,它位于一个带有特定类=“biz-name js-analytics-click”的标签中

标签: htmlpython-3.xbeautifulsoup

解决方案


尝试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

推荐阅读