2
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,我可以获取第一个 name 属性one,但我不确定如何打印第二个,即Two

任何人都可以帮助我吗?

4

3 回答 3

4

您应该阅读文档。在那里您可以看到它soup.find_all返回一个列表,因此您可以遍历列表,并为每个元素提取您要查找的标签。因此,您应该执行以下操作(此处未测试):

from bs4 import BeautifulSoup
soup = BeautifulSoup(source_code)
for item in soup.find_all('a'):
    print item['name']
于 2013-10-24T07:41:18.920 回答
1

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

>>> from BeautifulSoup import BeautifulSoup
>>> aTags = BeautifulSoup(source_code).findAll('a')
>>> for tag in aTags: print tag["name"]
... 
One
Two
于 2013-10-24T07:37:04.033 回答
1

要获取a第一个以外的任何子元素,请使用find_all. 对于第二个a标签:

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

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

于 2013-10-24T07:32:48.157 回答