クラス別に要素を検索する方法 質問する

クラス別に要素を検索する方法 質問する

Beautifulsoupを使用して「class」属性を持つHTML要素を解析する際に問題が発生しています。コードは次のようになります。

soup = BeautifulSoup(sdata)
mydivs = soup.findAll('div')
for div in mydivs: 
    if (div["class"] == "stylelistrow"):
        print div

スクリプトが終了した「後」に同じ行でエラーが発生します。

File "./beautifulcoding.py", line 130, in getlanguage
  if (div["class"] == "stylelistrow"):
File "/usr/local/lib/python2.6/dist-packages/BeautifulSoup.py", line 599, in __getitem__
   return self._getAttrMap()[key]
KeyError: 'class'

このエラーを解消するにはどうすればいいでしょうか?

ベストアンサー1

BS3 を使用して、特定のクラスの div のみを検索するように検索を絞り込むことができます。

mydivs = soup.find_all("div", {"class": "stylelistrow"})

おすすめ記事