从标记<a> using beautifulsoup</a>获取字符串

时间:2012-10-19 19:55:30

标签: python python-2.7 beautifulsoup

我有这个美化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”...我知道我不会说任何人去下一个但我不知道该怎么做

1 个答案:

答案 0 :(得分:2)

直接在findAll结果上循环:

for elem in res.findAll('a'):
    print elem

.find()方法只返回它找到的res中的第一个元素,它不会从您找到的最后一个匹配中继续搜索。因此,在每次循环运行时,它都会找到相同的元素。

如果要限制结果数量,请使用切片表示法:

for elem in res.findAll('a')[:3]:
    print elem