###Change Log
(2020/10/13, 22:50)default-jdk不要です。削除しました。
(2020/9/24, 05:30)ソート前のsjis版画像を追加しました。
(2020/9/24, 05:30)sort & uniq処理のスクリプトを少し手直ししました。
(2020/9/25, 05:00)sort & uniq処理のスクリプトを少し手直ししました。
##はじめに
COCO'S朝食バイキング実施店舗一覧のPDFファイルを取得してCSVにしてみます。
###なお
- 本記事ではRaspberryPi 4とPython3.7.3で実行しています。が、そこは大きな依存ポイントにはならず、たいていの環境で動くでしょう。
- また、出力結果確認は楽なWindows上のExcelとテキストエディタで行っていますが、そこもよしなに。
##準備 どこでもいいです
$ pwd
/home/dk4130523/scripts/cocos
$ mkdir -p pdf
$ mkdir -p csv
$ pip3 install tabula-py
##スクリプト
###pandas2x.py
import pandas as pd
import tabula
for p in range(1,5):
dfs = tabula.read_pdf("./pdf/bvshoplist.pdf", lattice = True, pages = p)
for df in dfs:
df.to_csv("./csv/bvshoplist.sjis.csv", index = None, mode = 'a', encoding = 'shift_jis')
df.to_csv("./csv/bvshoplist.utf8.csv", index = None, mode = 'a', encoding = 'utf-8')
###getbreakfast.sh
#!/bin/bash
# download latest pdf file
wget -O ./pdf/bvshoplist.pdf https://www.cocos-jpn.co.jp/menu_pdf/bvshoplist.pdf
# convert to csv by pandas and tabula
rm -rf ./csv/bvshoplist.csv
python3 ./pandas2x.py
# sort and uniq if required
cat ./csv/bvshoplist.sjis.csv | sort -t. -k1,1n -k2,2n | uniq > ./csv/bvshoplist.u_s.sjis.csv
cat ./csv/bvshoplist.utf8.csv | sort -t. -k1,1n -k2,2n | uniq > ./csv/bvshoplist.u_s.utf8.csv
# copy to some nice location
cp ./csv/bvshoplist.unique.sorted.*.csv /home/pi/Public/cocos/
###chmod +x
$ chmod +x ./getbreakfast.sh
##実行 トータル20秒くらいです
$ ./getbreakfast.sh
--2020-09-23 17:32:10-- https://www.cocos-jpn.co.jp/menu_pdf/bvshoplist.pdf
Resolving www.cocos-jpn.co.jp (www.cocos-jpn.co.jp)... 52.197.112.230, 52.68.53.187
Connecting to www.cocos-jpn.co.jp (www.cocos-jpn.co.jp)|52.197.112.230|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 524703 (512K) [application/pdf]
Saving to: ‘./pdf/bvshoplist.pdf’
./pdf/bvshoplist.pdf
100%[================>] 512.41K 1.39MB/s in 0.4s
2020-09-23 17:32:10 (1.39 MB/s) - ‘./pdf/bvshoplist.pdf’ saved [524703/524703]
$
##出力結果確認
###保存先
(僕の用途では、ソート&ユニークにしたものだけあれば十分です。ソート&ユニークする前のものも、元の場所に残してあります。今回、ソート&ユニーク後のsjis版とutf8版で、どちらも同じ223行であることのみ確認しました。)
###sjisソート前
###sjisソート後 ラズパイで自動ソートしたものをExcelで開いただけの状態
###utf8
##おしまい
本記事の紹介はここまです。この先は用途に応じて適宜。よかったですね。😺💕
##参考
大いに参考にさせていただきました。ありがとうございました。😺💕
【自動化】PDF内の表をPythonで抜き出す