自動的にホームページの内容を解析し、テキストを取得したい。
このような行為をWebスクレイピングと言います。
今回は、Webスクレイピングするために必要なPythonライブラリのBeautiful Soupのインストール手順を紹介します。
また、Beautiful Soup単体だけではWebスクレイピングに不足しているので、他のライブラリも必要になってくるので、その辺りも紹介します。
前提
前提
- python3がインストールされていること
- pip3がインストールされていること
- Jupyter Nodebookがインストールされていること(動作検証用)
Jupyter Notebookのインストール方法は以下を参照ください。
Webスクレイピングの手順
Webスクレイピングの手順を確認すると以下のように3つの工程に分かれています。
- データを取得: HTMLを取得します
- データを解析: HTMLを解析します
- データを処理: 解析結果から所定のデータを抽出します。
WebスクレイピングとしてはBeautiful Soupが有名です。
しかし、Beautiful Soupは主にデータの解析に特化したライブラリになり、「データ取得」と「データ処理」は別のライブラリで行います。
データを取得するためのライブラリは「Requests」というものを利用します。まずはRequestsをインストールしましょう。
Requestsのインストール
以下のコマンドを実行します。
command
pip3 install requests
動作確認
Jupyter Notebookで簡単に動作を確認してみましょう。
Web Scraping Test用ページを用意しているので以下のページをテストにご利用ください。
Web Scraping Test ページ | Yes We Can
Web スクレイピングは利用規約で禁止されている場合がある(例えば、楽天市場やYahooファイナンスなど)ので注意してください。
command imports requests
url = 'https://tobe-happy.com/web_scraping_test/'
response = requests.get(url)
response.text
と記載して、実行すると取得できました。
Beautiful Soupのインストール
次に、Beautiful Soupをインストールします。
command
pip3 install beautifulsoup4
*忘れずに末尾の「4」を入力するようにしてください。
動作確認
インストールが無事に完了したかどうか確認しましょう。
確認のため、先頭のh1タグを取得します。
command soup = BeautifulSoup(response.text, "html.parser")
soup.find("h1")
結果として、以下を取得することができました。
command
<h1 class=“entry-title st-css-no”>Web Scraping Test ページ</h1>
以下がオリジナルソースとなりますが、h1タグの内容を抽出できていますね。
Web スクレイピングの知識や技術を深めたい方は、以下のUdemyの講座がオススメです。