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
任何人都可以帮助我吗?
答案 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