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」をオススメします。
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミングposted with ヨメレバ
Al Sweigart オライリージャパン 2017-06-03