プログラミング

SeleniumとBeautifulSoupの違いをまとめてみた

こんにちは。今回はWebスクレイピングで必ずと言っていいほど使うSeleniumとBeautifulSoupについて、簡単に違いをまとめてみました。

用途の違いがイマイチ掴めない方は、ぜひこちらの記事を参考にイメージを掴んでみてください。

それぞれの特徴

まずはSeleniumとBeautifulSoupの特徴を解説します。

Selenium

公式ページ

https://www.selenium.dev/ja/documentation/

Seleniumはラウザを制御してWeb操作を自動化するためのツールです。Webアプリケーションのテストを自動化したり、Webスクレイピングを行ったりするときに使用します。

具体的には、Google ChromeやFirefoxなどのブラウザでWebページやWebアプリケーションを制御し、ボタンのクリックやテキスト入力、JavaScriptの実行を行うことができます。

ブラウザを通じてJavaScriptによって生成されるボタンなどといったWebページ上のダイナミックなコンテンツを操作できるため、JavaScriptによって動的に要素が生成されるWebサイトのスクレイピングに適しています。

BeautifulSoup

公式ページ

https://www.crummy.com/software/BeautifulSoup/bs4/doc/

BeautifulSoupは、HTMLやXMLなどのマークアップ言語からデータを抽出するためのライブラリです。Webスクレイピングを行うときに利用します。

具体的には、ウェブページのソースコードを解析し、タグや属性を指定してデータを抽出したり、Webスクレイピングを行ったりすることができます。

あくまでマークアップ言語からデータを抽出するためのライブラリであるため、JavaScriptによって動的に要素が生成されるWebサイトのスクレイピングには適していません

違い

ここからは、特徴を踏まえた違いについて、表形式でまとめています。

SeleniumBeautifulSoup
目的ブラウザを制御することでWeb操作を自動化するHTMLやXMLからデータを抽出する
ブラウザの制御制御する制御しない
動的なコンテンツアクセス可能アクセス不可
実行環境Pythonのライブラリ、ブラウザドライバーPythonのライブラリのみ

使い分け

両方とも似たようなツールでしたが、

  • Selenium ... JavaScriptによって動的に要素が生成されるWebページのスクレイピングに適している
  • BeautifulSoup ... 静的なWebページからのデータ抽出に適している

と、それぞれできること・得意なことが違います。

実際の案件ではJavaScriptに依存しているWebページをスクレイピングしデータの抽出までを行うケースがほとんどであるため

  • SeleniumでWebページを操作して
  • 対象のページからHTMLのコードを取得して
  • BeautifulSoupで解析してデータを抽出

というように両方を併用することが多いです。

まとめ

今回はPythonのWebスクレイピングで使用する Selenium と BeautifulSoup の違いについて解説しました。

似たようなツールでも違いがわかると、業務シーンによって効果的にツールを選択することができ、快適に進めることができるのでぜひ参考にしていただけると嬉しいです。

  • この記事を書いた人
  • 最新記事

おみ

プログラミング学習やキャリアのことを発信していきます。【経歴】1999年生まれ。専門学校卒業後、大手企業やベンチャー企業でSEとして勤務。現在は某メガベンチャーでFlutterエンジニアとして働いています。

-プログラミング
-, ,