Seleniumだけだとうまくいかず、Beautifulsoupと併用することになったはいいけれどBeautifulsoupのクラスの指定方法になれない。となるとif文はどうなるんだ?と思ったのでその時の備忘録です。
BeautifulsoupでHTMLの要素を指定するには?
if文を書く前にBeautifulsoupでHTMLの要素を指定する方法を学びます。
今回はクラスを指定してみます。
#タグなしクラスだけ
soup.find(class_ = "name")
#タグなし全てのクラス
soup.find_all(class_='name')
#タグ付き1つだけ
soup.find('span', class_='name')
#タグ付き全てのクラス
soup.find_all('span', class_='name')
BeautifulsoupでHTMLの要素を取得できればif文は知っていればもう簡単ですね。
ちなみにsoupの部分は以下のコードでHTMLを読み込んだデータが入っている想定です。
soup = BeautifulSoup(driver.page_source, 'html.parser')
Beautifulsoupで特定のクラスがあるかのif文の書き方
HTMLの要素を取得する方法がわかればif文の条件に指定するだけです。
if soup.find('span', class_="name"):
print(true)
else:
print(false)
上記の場合spanタグのクラスの名前がnameのタグがあればtrue、なければfalseが実行されます。
おわり
Beautifulsoupは本で学んだはずなのに全然覚えてなくて自分の記憶力のなさに驚きます。
BeautifulsoupでのHTML要素取得方法の深掘りは今度別記事で書けたらなと思っています。
参考元
https://stackoverflow.com/questions/51939902/beautifulsoup-if-class-exists