我有这个美化html
<a href="somepath">
Text1
</a>
<span>
|
</span>
<a href="somepath">
Text2
</a>
<span>
|
</span>
<a href="somepath">
Text3
</a>
我使用了这段代码:
cnta= len(res.findAll('a'))-1 //I used -1 because I have one extra a tag
cnt = 0
while cnt<cnta:
res2 = res.find('a').text
cnt+=1
print res2
我想采取所有3个文本,但结果是3次“Text1”...我知道我不会说任何人去下一个但我不知道该怎么做
答案 0 :(得分:2)
直接在findAll
结果上循环:
for elem in res.findAll('a'):
print elem
.find()
方法只返回它找到的res
中的第一个元素,它不会从您找到的最后一个匹配中继续搜索。因此,在每次循环运行时,它都会找到相同的元素。
如果要限制结果数量,请使用切片表示法:
for elem in res.findAll('a')[:3]:
print elem