<Beautiful Soup> classを検索する時、

ちとはまったので、メモ。
classの値を使って検索する時は、class_と指定しないといけないっぽい。

In [26]: import urllib

In [27]: from bs4 import BeautifulSoup

In [28]: url = urllib.request.urlopen('http://nekoyukimmm.hatenablog.com/entry/2016/03/10/183919')

In [29]: s = url.read()

In [30]: soup = BeautifulSoup(s, 'lxml')

で、、、

In [24]: soup.findAll('div', class='message-box')
  File "<ipython-input-24-197c59233971>", line 1
    soup.findAll('div', class='message-box')
                            ^
SyntaxError: invalid syntax

えらー、、、
で、classclass_にすると、、

In [25]: soup.findAll('div', class_='message-box')
Out[25]: 
[<div class="message-box" id="quote-star-message-box" style="display: none; position: absolute;">
       スターをつけました
     </div>,
 <div class="message-box" id="quote-stock-succeeded-message" style="display: none">
 <p>引用をストックしました</p>
 <button class="btn btn-primary" data-track-name="curation-quote-edit-button" id="quote-stock-show-editor-button">ストック一覧を見る</button>
 <button class="btn quote-stock-close-message-button">閉じる</button>
 </div>,
 <div class="message-box" id="quote-login-required-message" style="display: none">
 <p>引用するにはまずログインしてください</p>
 <button class="btn btn-primary" id="quote-login-button">ログイン</button>
 <button class="btn quote-stock-close-message-button">閉じる</button>
 </div>]

いけた、、なんじゃらほい。

Stackoverflow

stackoverflow.com

で、ドキュメント

Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation

なるほど、classで指定したけど、python予約語だから、class_にしたのか、、