我有这个美化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”...我知道我没有让任何人转到下一个,但我不知道该怎么做
最佳答案
直接循环 findAll
结果:
for elem in res.findAll('a'):
print elem
.find()
方法仅返回它找到的 res
中的第一个元素,它不会从您找到的最后一个匹配项继续搜索。因此,每次运行循环时,它都会找到相同的元素。
如果要限制结果数量,请使用切片表示法:
for elem in res.findAll('a')[:3]:
print elem
关于python - 使用 beautifulsoup 从标签 <a> 获取字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12981551/