BeautifulSoupを使用してWebサイトを解析しています。私が欲しいコンテンツ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
私はここで何が起こっているのか静かに理解していません。最終的には例外を使用して問題を解決しましたが、これはちょっと私を悩ませています。誰かがここで何が起こっているのか説明できますか?