- 要件定義〜python環境構築
- サイトのスクレイピング機構を作る
- ダウンロードしたファイル(xls)を加工し、最終成果物(csv)を作成するようにする
- S3からのファイルダウンロード / S3へのファイルアップロードをつくる
- 2captchaを実装
- Dockerコンテナで起動できるようにする
- AWS batchに登録
ファイル操作
前回まででseleniumを使ったファイルダウンロードを行ったので、
それを取得・加工してcsvファイルとして保存し直す処理を記載します。
ファイル一覧を取得
特定のフォルダ内の特定パターンのファイルをすべて取得する!
というときはglobが便利。
# 当該正規表現のファイルリストを取得(glob)
file_list = glob.glob(dl_dir+'/*')
Excelファイルの操作
pythonによるexcel操作はいくつかライブラリがあるようですが、ひとつ覚えておくと便利そう。私はxlrdを使います。
# Excelファイルの操作
wb = xlrd.open_workbook(file_name) #xlsを開く
sheet_names = wb.sheet_names() #シート名一覧を取得
sheet = wb.sheet_by_name(sheet_names[1])
values2 = sheet.col_values(2)
values5 = sheet.col_values(5)
values2.pop(0) #1行目をなくすため…。もっといいやり方あるのかな
values5.pop(0)
for i in range(len(channels)):
obj = [
word,
someFunction2(values2[i]),
someFunction5(values5[i])
]
result.append(obj)
csvファイルに保存
with open(up_dir + '/result-{}.csv'.format(file_name), 'w') as f:
writer = csv.writer(f)
writer.writerows(result)
完成
ここまでで、
- 実行するとサイトをスクレイピングしてファイルをダウンロードし
- それを加工したものを特定フォルダに置く
というところまでできました。
次は、「加工したものをS3に送る」ところと、「そもそものINPUT(words)をS3から取得する」ところを書いていきます。