はじめに
Beautiful Soup4のfind()とselect()の使い方まとめです。
使用方法
find()
# タグの指定
soup.find('li')
# idの指定
soup.find(id='hoge')
soup.find(id=['hoge', 'fuga']) # OR検索
# タグとidで指定
soup.find('div', id='hoge')
# クラスの指定
soup.find(class_='hoge')
soup.find(class_='hoge fuga') # AND検索
# タグとクラスで指定
soup.find('li', class_='hoge')
select()
# タグの指定
soup.select('li')
# idの指定
soup.select('#hoge')
soup.select('#hoge', '#fuga') # OR検索
# タグとidで指定
soup.select('div#hoge')
# クラスの指定
soup.select('.hoge')
soup.select('.hoge.fuga') # AND検索
# タグとクラスで指定
soup.select('li.hoge')
'''
ここから下はselect特有(find系ではできない...はず)
'''
# タグの直下のタグを指定
soup.select('div > ul > li')
# タグの親子関係を指定
soup.select('div li')
#タグの親子関係にid指定を組み合わせる
soup.select('div#hoge li')
おまけ
タグを除去したいときは soup.get_text()で。
find_all()と対応するのは select()、find()は select_one()。ややこしい…。