【Python】BeautifulSoupでスクレイピングをしてテキストに出力するのは簡単だった

こんにちは、kazuです。
本日はPythonのライブラリBeautifulSoupでスクレイピングをしましたので、解説しようと思います。

スクレイピングとは

まずは、スクレイピングを知らない人に簡単に説明します。
スクレイピングとはプログラムを使ってwebからコンテンツをダウンロードしてデータを収集することです。
収集したデータは集めたデータを抽出・加工をして扱います。

環境

OS : Windows10
PythonVersion : Python 3.9.7
パッケージ管理 : PyPI(Python Package Index) コマンドpip

どのようなプログラムか?

今回のサンプルのプログラムはURLに指定したWebコンテンツの
テキストのみをtest.txtに出力するタグ付きのコンテンツをtest2.txtに出力する
プログラムになります。
抽出して終わりになりますが、基本はわかるのではないかと思います。

コードを見てみよう

import requests
from bs4 import BeautifulSoup
# URLを設定
url = 'https://"URLを記載します"'
#URLのテキストを取得
responseURL = requests.get(url).text
# HTMLタグを全て解析(html.parser)
bs = BeautifulSoup(responseURL, 'html.parser')
# テストテキスト①
text_path = r'pythontext\test.txt'
# テストテキスト②
text_path2 = r'pythontext\test2.txt'
with open(text_path, mode='w',encoding='utf8') as f:
  # タグのテキスト部分だけが取得して文字列のみ出力
  f.write(bs.get_text())
 # h1タグのみのテキストを書き込み
  # f.write(bs.find("h1").get_text())
with open(text_path2, mode='w',encoding='utf8') as f:
  # Unicode文字列に変換タグを含めて出力
  f.write(bs.prettify())
 # h1タグ含めたテキストを書き込み
  # f.write(bs.find("h1").prettify())
# パッケージをインストールしていない場合
# パッケージ requestsをインストールするコマンド
pip install requests
# パッケージ BeautifulSoupをインストールするコマンド
pip install BeautifulSoup4
インストールされているかどうかの確認
pip list

最後に

いかがでしたでしょうか?
Pythonでのスクレイピングは簡単ですね!
ほんの数行でスクレイピングができました。
ただし注意してほしいのが、サイトによってはスクレイピングは禁止になっています。
かくいう本サイトでもスクレイピングは禁止になっています。
その点だけは気を付けてくださいね!
最後までご覧いただきありがとうございました!

参考本

実際にスクレイピングを学びたい人に体験しながら実装をすることができます。

スクレイピングの高度な技術を学ぶことができますただし初心者やプログラミング間もない人にはあまり向いていないかもしれません。

スクレイピングのことも簡単には記載されています。スクレイピングを極めたい人には向いてはいませんが、スクレイピングを含めExcelとの連携など様々なことが載っています。