![Beautiful soup インストール](https://tobe-happy.com/yeswecan/wp-content/uploads/2021/02/0baf81a09fdc6f3d982233a39e48a73b.png)
自動的にホームページの内容を解析し、テキストを取得したい。
このような行為をWebスクレイピングと言います。
今回は、Webスクレイピングするために必要なPythonライブラリのBeautiful Soupのインストール手順を紹介します。
また、Beautiful Soup単体だけではWebスクレイピングに不足しているので、他のライブラリも必要になってくるので、その辺りも紹介します。
前提
前提
- python3がインストールされていること
- pip3がインストールされていること
- Jupyter Nodebookがインストールされていること(動作検証用)
Jupyter Notebookのインストール方法は以下を参照ください。
-
-
Jupyter Notebookのインストール手順: コード入力補完機能も一緒に入れよう
続きを見る
Webスクレイピングの手順
Webスクレイピングの手順を確認すると以下のように3つの工程に分かれています。
- データを取得: HTMLを取得します
- データを解析: HTMLを解析します
- データを処理: 解析結果から所定のデータを抽出します。
![ステップ手順](https://tobe-happy.com/yeswecan/wp-content/uploads/2021/02/web_sc_step.png)
WebスクレイピングとしてはBeautiful Soupが有名です。
しかし、Beautiful Soupは主にデータの解析に特化したライブラリになり、「データ取得」と「データ処理」は別のライブラリで行います。
データを取得するためのライブラリは「Requests」というものを利用します。まずはRequestsをインストールしましょう。
![](https://tobe-happy.com/yeswecan/wp-content/plugins/pochipp/assets/img/pochipp-logo-t1.png)
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
と記載して、実行すると取得できました。
![requests実行結果](https://tobe-happy.com/yeswecan/wp-content/uploads/2021/02/soup_confirmation-1.png)
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タグの内容を抽出できていますね。
![beautiful soup 実行結果](https://tobe-happy.com/yeswecan/wp-content/uploads/2021/02/soup_result.png)
Web スクレイピングの知識や技術を深めたい方は、以下のUdemyの講座がオススメです。
![](https://www16.a8.net/0.gif?a8mat=2TVGOC+P09QA+3L4M+BW8O2)
![](https://www13.a8.net/0.gif?a8mat=2TVGOC+P09QA+3L4M+BW8O2)