我有类型为 bs4.element.Tag 的元素
<a class="nav-link match-link-stats" href="/football/matches/match867851_Kalteng_Putra-Arema-online/" title="Stat"><i class="icon-match-link"></i></a>
我想从这个元素中获取"/football/matches/match867851_Kalteng_Putra-Arema-online/"。怎么办?
这个答案假设你已经将Tag
元素作为一个对象。 如果没有,请使用昆都的答案。
您可以使用tag.get('href')
或tag['href']
:
>>> tag.get('href')
'/football/matches/match867851_Kalteng_Putra-Arema-online/'
>>> tag['href']
'/football/matches/match867851_Kalteng_Putra-Arema-online/'
不同之处在于,如果属性不存在,tag.get('href')
将返回 None,而在这种情况下,tag['href']
将引发KeyError
。 这与dict
中的行为相同。
完整示例:
>>> from bs4 import BeautifulSoup
>>> soup = BeautifulSoup('<a class="nav-link match-link-stats" href="/football/matches/match867851_Kalteng_Putra-Arema-online/" title="Stat"><i class="icon-match-link"></i></a>')
>>> tag = soup.find('a')
>>> type(tag)
<class 'bs4.element.Tag'>
>>> tag.get('href')
'/football/matches/match867851_Kalteng_Putra-Arema-online/'
>>> tag['href']
'/football/matches/match867851_Kalteng_Putra-Arema-online/'
tag.findChild("a")['href']
你抓住"a"标签,然后取"href"属性
使用 css selecor 并获取属性href
from bs4 import BeautifulSoup
data='''<a class="nav-link match-link-stats" href="/football/matches/match867851_Kalteng_Putra-Arema-online/" title="Stat"><i class="icon-match-link"></i></a>'''
soup= BeautifulSoup(data, 'html.parser')
print(soup.select_one('.match-link-stats')['href'])
输出:
/football/matches/match867851_Kalteng_Putra-Arema-online/