
BeautifulSoupとは?
BeautifulSoupは、Pythonのライブラリの1つで、HTMLやXMLなどのマークアップ言語から情報を抽出するためのツールです。HTMLのタグや属性を指定して、その要素を抽出できます。
DataFrameとは?
DataFrameは、Pandasというライブラリの1つで、テーブル形式のデータを扱うためのツールです。Excelのように、行と列で構成されるデータを扱うことができます。
BeautifulSoupとDataFrameを使ったWebスクレイピングの基本的な流れ
Webスクレイピングの基本的な流れは以下の通りです。
- スクレイピングしたいWebページのURLを取得する。
- 取得したURLからHTMLを取得する。
- BeautifulSoupを使ってHTMLを解析する。
- 必要な情報を抽出して、DataFrameに格納する。
BeautifulSoupを使ったHTMLの解析方法
BeautifulSoupを使ってHTMLを解析するには、以下のような手順が必要です。
- HTMLを読み込む。
- 解析したい部分を指定する。
- 必要な情報を抽出する。
以下は、BeautifulSoupを使ってHTMLを解析するためのサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 | import requests from bs4 import BeautifulSoup # スクレイピングしたいWebページのURLを取得する # 取得したURLからHTMLを取得する response = requests.get(url) html = response.content # BeautifulSoupを使ってHTMLを解析する soup = BeautifulSoup(html, 'html.parser' ) # 必要な情報を抽出する title = soup.title.string |
DataFrameを使ったデータの整形方法
DataFrameを使ったデータの整形には、以下のような手順が必要です。
- データを読み込む。
- 必要な列を選択する。
- 不要な行を削除する。
- 欠損値を処理する。
- データ型を変換する。
以下は、DataFrameを使ってデータを整形するためのサンプルコードです。
1 2 3 4 5 6 7 8 9 10 11 | import pandas as pd # データを読み込む df = pd.read_csv( 'data.csv' ) # 必要な列を選択する df = df[[ 'column1' , 'column2' , 'column3' ]] # 不要な行を削除する df = df.dropna() # 欠損値を処理する df = df.fillna( 0 ) # データ型を変換する df[ 'column3' ] = df[ 'column3' ].astype( int ) |
BeautifulSoupとDataFrameを活用した具体的なWebスクレイピングの例
以下は、BeautifulSoupとDataFrameを活用した具体的なWebスクレイピングの例です。
スクレイピングしたいWebページのURLは、Python公式サイトのトップページです。
このWebページから、Pythonの最新バージョンとそのリリース日を抽出して、DataFrameに格納します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | import requests from bs4 import BeautifulSoup import pandas as pd # スクレイピングしたいWebページのURLを取得する url = 'スクレイピングしたいWebページのURL' # 取得したURLからHTMLを取得する response = requests.get(url) html = response.content # BeautifulSoupを使ってHTMLを解析する soup = BeautifulSoup(html, 'html.parser' ) # 必要な情報を抽出する version = soup.find( 'span' , { 'class' : 'release-number' }).text released = soup.find( 'span' , { 'class' : 'release-date' }).text # DataFrameに格納する data = { 'version' : [version], 'released' : [released]} df = pd.DataFrame(data) print (df) |
まとめ
今回は、BeautifulSoupとDataFrameを使ってWebスクレイピングする方法について紹介しました。
Webスクレイピングは、必要な情報を自動的に抽出することができるため、データ収集や分析に非常に有効です。
ただし、Webスクレイピングはサイトの利用規約に違反することがあるため、注意が必要です。