Python

[Python] HTMLファイルからtableタグの内容をCSVファイル化する方法

こんにちは!土門大貴(daikidomon)です。

PythonでHTMLファイルのテーブルタグをCSVファイルにを作成してみました。

↓がソースになります。
import datetime
import pandas
import csv

if __name__ == '__main__':
url = input("Please input parse url : ")
tables = pandas.read_html(url)
now = datetime.datetime.now()
filetimestamp = now.strftime('%Y%m%d-%H%M%S-%f')
filename_prefix = input("Please input filename : ")
for i in range(len(tables)):
print(tables)
filename = filename_prefix + str(i).zfill(5) + "_" + filetimestamp + ".csv"
tables[i].to_csv(filename)

解説

今回は「pandas」というモジュールを使用します。

利用するためには2行目でまずpandasをimportしております。

デフォルトコンポーネントではないので、入れていない人は「pip」でインストールしましょう。
import datetime
import pandas
import csv

if __name__ == '__main__':
url = input("Please input parse url : ")
tables = pandas.read_html(url)
now = datetime.datetime.now()
filetimestamp = now.strftime('%Y%m%d-%H%M%S-%f')
filename_prefix = input("Please input filename : ")
for i in range(len(tables)):
print(tables)
filename = filename_prefix + str(i).zfill(5) + "_" + filetimestamp + ".csv"
tables[i].to_csv(filename)
pandasはデータ解析によく使われるモジュールで、データ解析に必要な機能はほぼそろっています。

今回は7行目で「htmlの取得」と「取得したデータのCSV化」を利用しています。
import datetime
import pandas
import csv

if __name__ == '__main__':
url = input("Please input parse url : ")
tables = pandas.read_html(url)
now = datetime.datetime.now()
filetimestamp = now.strftime('%Y%m%d-%H%M%S-%f')
filename_prefix = input("Please input filename : ")
for i in range(len(tables)):
print(tables)
filename = filename_prefix + str(i).zfill(5) + "_" + filetimestamp + ".csv"
tables[i].to_csv(filename)
HTML通信用の「requests」モジュールとHTML解析用の「BeautifulSoup4」を使用すれば、もっと細やかな解析ができます。

tableタグからCSVファイル抽出するだけならば「pandas」をオススメします。

公式http://pandas.pydata.org/

関連記事

-Python

Copyright© スタートアップIT企業社長のブログ , 2020 All Rights Reserved.