如何使用 BeautifulSoup [轻松] 获取元素的 href

要获取 <a> 标签的href 属性,我们需要使用以下语法:

tag['href']

通过使用上述语法,我们将学习如何:

  • 获取标签的 href 属性
  • 获取多标签的href属性

目录

获取标签的 href 属性

在下面的示例中,我们将使用 find() 函数查找 <a> 标签并使用 [‘href’] 打印 href 属性。

from bs4 import BeautifulSoup # Import BeautifulSoup module

# ? HTML Source
html = '''
 <a href="/python/string">Python string</a> 
'''

soup = BeautifulSoup(html, 'html.parser') # ?️ Parsing

a_tag = soup.find('a', href=True) # ?️ Find <a> tag that have a href attr

print(a_tag['href']) # ?️ Print href 

输出:

/python/string

href=True:具有 href 属性的标签。

获取多标签的href属性

要获取多标签的href,我们需要使用findall()函数查找所有<a>标签,并使用[‘href’]打印href属性。但是,让我们看一个例子。

from bs4 import BeautifulSoup # Import BeautifulSoup module

# ? HTML Source
html = '''
 <a href="/python/string">Python string</a> 
 <div>
 <a href="/python/variable">Python variable</a> 
 <a href="/python/list">Python list</a> 
 <a href="/python/set">Python set</a> 
 </div>
'''

soup = BeautifulSoup(html, 'html.parser') # ?️ Parsing

a_tags = soup.find_all('a', href=True) # ?️ Find all <a> tags that have a href attr

# ? Loop over the results
for tag in a_tags:
    print(tag['href']) # ?️ Print href 

输出:

/python/string
/python/variable
/python/list
/python/set

结论

请记住,当您想要获取标签的任何属性时,请使用以下语法:

tag[attribute name]

您可以访问 beautifulsoup 属性 以了解有关 BeautifulSoup 属性的更多信息。此外,对于更多 BeautifulSoup 主题,向下滚动你会找到它。