使用Beautiful Soup获取'name'属性

时间:2013-10-24 07:29:39

标签: python html beautifulsoup

from bs4 import BeautifulSoup

source_code = """<a href="#" name="One"></a>
                 <a href="#" name="Two"></a>"""

soup = BeautifulSoup(source_code)

print soup.a['name']   #prints 'One'

使用BeautifulSoup,我可以获取第一个名称属性one,但我不知道如何打印第二个,Two

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:4)

您应该阅读the documentation。在那里你可以看到soup.find_all返回一个列表 所以你可以迭代列表,并为每个元素提取你正在寻找的标签。所以你应该做类似的事情(这里没有测试过):

from bs4 import BeautifulSoup
soup = BeautifulSoup(source_code)
for item in soup.find_all('a'):
    print item['name']

答案 1 :(得分:1)

要获取除第一个之外的任何a子元素,请使用find_all。对于第二个a标记:

print soup.find_all('a', recursive=False)[1]['name']

要保持同一级别并避免深度搜索,请传递参数:recursive=False

答案 2 :(得分:1)

这将为您提供“a”的所有标签:

>>> from BeautifulSoup import BeautifulSoup
>>> aTags = BeautifulSoup(source_code).findAll('a')
>>> for tag in aTags: print tag["name"]
... 
One
Two