从bs4.element.Tag获取项目

时间:2019-08-07 13:21:09

标签: python beautifulsoup

我的元素类型为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 /”。怎么做?

3 个答案:

答案 0 :(得分:3)

此答案假设您已经拥有Tag元素作为对象。如果没有,请使用KunduK的答案。


您可以使用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/'

答案 1 :(得分:1)

使用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/

答案 2 :(得分:0)

tag.findChild("a")['href']

您获取“ a”标签,然后使用“ href”属性