我使用BeautifulSoup解析网站。我知道我想要的内容是div
类content
。而且内容全部都在p
个标签中。所以我跑了
paragraphs= content.findAll('p')
直到这里很好。我遍历列表,并且有if
条件,如果遇到特定的类,它将突破循环。
for para in paragraphs:
if 'class' in para:
if para['class']=='end':
break
但这不起作用。当我运行循环时,遇到end
类时它不会中断。事实上,在遍历循环时,所有元素的类似乎都会丢失。
for para in paragraphs:
if 'class' in para:
print para['class']
即使有类的元素,也不会打印出任何内容。实际上,这段代码确实打印出了类 -
>>>paragraphs[0]['class']
u'dateline'
但是,
>>> print 'class' in paragraphs[0]
False
我不清楚这里发生了什么。最终我通过使用异常来解决我的问题,但这有点困扰我。谁能解释一下这里发生了什么?
答案 0 :(得分:1)
当您放置if 'class' in para
时,您实际上是在说段中是否有实际字类。我相信你的意图是看它是否有课,所以你想要的是:
for para in paragraphs:
if para.has_key('class'):
if para['class'][0] == 'end': # Notice that I put [0], as para['class'] is a list.
break