COCO'S朝食バイキング実施店舗一覧PDFファイルを取得してCSVにする
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で抜き出す
Author And Source
この問題について(COCO'S朝食バイキング実施店舗一覧PDFファイルを取得してCSVにする), 我々は、より多くの情報をここで見つけました https://qiita.com/dk4130523/items/b03be4a43afa606cb01b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .