現在の見出し:2.1節:CSV出力機能の作成
見出し一覧
- 2.1節:CSV出力機能の作成
- - csv.writer()によるファイル書き込み機能の実装
- - writerow()メソッドによるデータ行追加機能の実装
【PR】『Python』を学べる企業・個人向けのプログラミングコース
csv.writer()によるファイル書き込み機能の実装
前節(第1章 1.2節)で作成したコードを基盤として、csv.writer()によるCSVファイル作成と書き込み機能を追加します。前節までのコードはHTMLHTMLはWebページを作成するためのマークアップ言語です。から文字データを抽出するだけでしたが、実用的なスクレイピングツールにするためには、取得したデータを保存する機能が必要です。
csv.writer()関数関数は一定の処理をまとめたプログラムの塊です。を選択する理由は、Pythonの標準ライブラリライブラリは再利用可能なソフトウェアの部品です。に含まれているため追加インストールが不要な上に、データの区切り文字やエスケープ処理を自動的に処理してくれるためです。csv.writer()関数によって、手動でカンマ区切りの文字列文字列は文字の並びを表現するデータ型で、テキストデータを扱うための基本的な構造として広く使用されています。を作成する必要がなく、日本語文字が含まれていても適切なCSV形式でファイルに書き込めます。
CSVファイルの作成には、適切なパラメータ設定が重要です。以下の設定により、様々な環境で正常に動作するCSVファイルを作成できます。
- newline='':CSV形式特有の改行処理を適切に行い、余分な空行の挿入を防止
- encoding='utf-8':日本語文字の正常な保存を保証し、文字化けを防止
- 書き込みモード('w'):新規ファイル作成または既存ファイルの上書きを実行
このセクションでは、CSVファイルの作成とwriterオブジェクトオブジェクトはプログラムの要素の一つで、データとその操作手段を一つにまとめたものです。の準備のみを行うため、作成されるCSVファイルは空の状態になります。実際のデータ書き込み処理は、次のセクション「writerow()メソッドメソッドは特定の処理をまとめたプログラムの塊です。によるデータ行追加機能の実装」で実装します。
# コード
import requests
from bs4 import BeautifulSoup
import csv
# 固定URLでHTMLデータを取得
url = "https://example.com"
response = requests.get(url)
print("HTMLデータ取得完了")
print(f"データサイズ: {len(response.text)}文字")
# HTML解析機能
soup = BeautifulSoup(response.text, 'html.parser')
print("HTML解析完了")
print(f"解析結果タイプ: {type(soup)}")
# 特定タグ抽出機能
title_element = soup.find('title')
print("タイトルタグ抽出完了")
print(f"抽出要素: {title_element}")
# 文字データ取得機能
if title_element:
title_text = title_element.text
print("文字データ取得完了")
print(f"タイトル: {title_text}")
else:
print("タイトルタグが見つかりません")
title_text = "タイトル不明"
# CSV書き込み機能を追加
filename = "scraped_data.csv"
file = open(filename, 'w', newline='', encoding='utf-8')
writer = csv.writer(file)
print("CSVファイル作成完了")
print(f"ファイル名: {filename}")
# 実行結果
HTMLデータ取得完了
データサイズ: 1256文字
HTML解析完了
解析結果タイプ: <class 'bs4.BeautifulSoup'>
タイトルタグ抽出完了
抽出要素: <title>Example Domain</title>
文字データ取得完了
タイトル: Example Domain
CSVファイル作成完了
ファイル名: scraped_data.csv
行数 | 種別 | コード | 解説 |
---|---|---|---|
4行目 | 新規 | import csv |
CSVファイルの読み書きを行うためのcsvライブラリをインポートします。Pythonの標準ライブラリに含まれているため追加インストール不要です。 |
32行目 | 新規 | filename = "scraped_data.csv" |
作成するCSVファイルの名前を変数変数はデータを一時的に記憶しておく場所です。に格納します。ファイル名を変数化することで後の処理で再利用しやすくなります。 |
33行目 | 新規 | file = open(filename, 'w', newline='', encoding='utf-8') |
CSVファイルを書き込みモードで開きます。newline=''でCSV形式の改行を適切に処理し、utf-8エンコーディングコーディングはコンピュータが理解できるようにプログラムを書く作業です。で日本語対応を行います。 |
34行目 | 新規 | writer = csv.writer(file) |
開いたファイルに対してCSV形式で書き込みを行うwriterオブジェクトを作成します。このオブジェクトを使用してデータを行単位で書き込みます。 |
35行目 | 新規 | print("CSVファイル作成完了") |
CSVファイルとwriterオブジェクトの作成が完了したことを確認するメッセージを出力します。処理の進行状況を把握するための確認出力です。 |
36行目 | 新規 | print(f"ファイル名: {filename}") |
作成されたCSVファイルの名前を表示して、どのファイルが生成されたかを明確にします。ファイル管理のための重要な情報表示です。 |