2014-10-30 59 views
1

代码:beautifulsoup:不能提取所有的元素在一个循环

from bs4 import BeautifulSoup 
soup = BeautifulSoup('<div><p>p_string</p><div>div_string</div></div>') 
for m in soup.div: 
    print "extract(first loop): ", m.extract() 
print "current soup.div(frist loop): ", soup.div #it contains another div block 
print '___________________________________________________________' 

#I have to do another for loop to purge the remaining div block, why? 
for m in soup.div: 
    print "extract(second loop): ", m.extract() 

print "current soup.div(second loop): ", soup.div #removed 

结果:

extract(first loop): <p>p_string</p> 
current soup.div(frist loop): <div><div>div_string</div></div> 
___________________________________________________________ 
extract(second loop): <div>div_string</div> 
current soup.div(second loop): <div></div> 

为什么没有把它提取的所有元素( pdiv)在第一个for循环?

回答