<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
えらー、、、
で、class
をclass_
にすると、、
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
で、ドキュメント
Beautiful Soup Documentation — Beautiful Soup 4.4.0 documentation
なるほど、class
で指定したけど、python
の予約語だから、class_
にしたのか、、