中田のタスク管理

タスクの詳細

完了
経理処理自動化ツール_スクレイピング部分の実装
依頼者 竹谷さん
進捗率
100%  作業状況
現在の作業 @affiliate
作業完了日 2021-05-06 15:16:32
タスクタイプ 通常
タグ スクレイピング
現状サマリー

現在「完了」、進捗 10%。工程は全17件中 17件完了。

最新報告「ご確認ありがとうございました」(2021-05-06 15:16:08)

タスクの詳細情報・説明 別ウィンドウで表示

依頼の詳細:

管理部の経理処理を自動化を依頼されています。

ASP自動取得レポートの時の様に、ASPログイン→該当の箇所からCSV取得もしくは画面からテキスト取得で特定のスプレッドシートに毎月転記してくる処理の部分をお願いしたいです。
口頭で軽く補足したいので、業務日にdiscordでMTGをお願いします!

依頼理由:

管理部タスクを少しでも軽減するため

依頼のゴールイメージ:

このスプレッドシートの各ASPのタブに、月ごとに確定額(もしくは振込額、支払い額)を転記していく仕組みができるイメージです。
ログインURLと遷移方法、処理するタイミングをシートにまとめてあります。
不足などあれば遠慮なくご確認ください!
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=576165288

デザインについて:

スクレイピング処理後、こちらで考えるので、特に気にしなくて大丈夫です。

対応者メモ・コメント 別ウィンドウで表示

メモ

各ASP取得内容
・どのタイミングで、
・どのページの、
・どの項目を取得し、
・どこへ出力するか


作業工程・チェックリスト

現在の進捗:17/17 100%
Felmat
afb
アクトレ01
アクトレ02
JANet
xmax
Rentracks
valuecommerce
Link-A
Amazonアソシエイト
楽天
AdCent
AdNetwork(アイモバイル)
ZucksAffiliate
Zucksアドネットワーク
WebAntenna
@affiliate

コメント コメントフォーム

中田
ご確認ありがとうございました

一旦、こちらから依頼した内容は確認が取れましたのでチケットクローズしていただいて問題ございません!


では、こちらは請求が入ってから改めて対応を依頼させていただきますね!

かしこまりました、よろしくお願いいたします

コメントのURLコピー 2021-05-06 15:16:08
竹谷さん

Appleに関してですが、現状請求情報が入っていないようです。
請求情報がはいっていないため、ページ上での数値の入力状態が不明なため、
スクリプトの記述ができません。
(数値が入った状態のHTML構造が必要)
https://gyazo.com/fbf57192049959e29ef8d56561bd11e1


→請求情報が入った段階で再度取得するスクリプトを組んでいきます。

こちら承知しました!
では、こちらは請求が入ってから改めて対応を依頼させていただきますね!

YOUTUBE(Googleアカウント)のログインは、対策されており
GEOと同じようにスクレイピングは厳しそうです。

こちらも畏まりました!

@affiliateの内容も確認できました!
ご対応ありがとうございました

一旦、こちらから依頼した内容は確認が取れましたのでチケットクローズしていただいて問題ございません!

コピー 2021-05-06 14:37:10 対応者 既読
中田
@affiliate取得しました

@affiliate
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=28872357

上記スプレッドシートに出力しています。
ご確認をお願いいたします

コメントのURLコピー 2021-05-06 11:45:55
中田
YOUTUBEの管理画面へのログイン

YOUTUBEの報酬額を取得するための管理画面のログインが行えませんでした。

原因は、スクレイピングの対策がされているためです。

https://gyazo.com/6477a0580f1ba55e935661efa1ec0d80

YOUTUBE(Googleアカウント)のログインは、対策されており
GEOと同じようにスクレイピングは厳しそうです。

こちらも一旦飛ばします

コメントのURLコピー 2021-05-06 10:45:44
中田
Appleアフィリエイトプログラムの管理画面へのログイン

アカウント情報ありがとうございます


Appleに関してですが、現状請求情報が入っていないようです。
請求情報がはいっていないため、ページ上での数値の入力状態が不明なため、
スクリプトの記述ができません。
(数値が入った状態のHTML構造が必要)
https://gyazo.com/fbf57192049959e29ef8d56561bd11e1

→請求情報が入った段階で再度取得するスクリプトを組んでいきます。

コメントのURLコピー 2021-05-06 08:13:11
竹谷さん

Appleアフィリエイトプログラム ログインできませんでした

担当者に確認したところ、過去パスをそのまま記録していた様です。
ログイン情報修正しましたので、再度お試しください。

以下3つは、アカウント情報等をご確認頂いた後対応します
・Youtube
・@affiliate

こちら、お待たせして申し訳ございません…!
ログイン情報記載しましたので、ご対応よろしくお願いします

コピー 2021-04-30 16:22:35 対応者 既読
中田
4/26 作業進捗

以下対応しました。

WebAntenna
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1709655898


以下3つは、アカウント情報等をご確認頂いた後対応します

・Youtube
・@affiliate
・Appleアフィリエイトプログラム

コメントのURLコピー 2021-04-26 17:48:16
中田
Appleアフィリエイトプログラム ログインできませんでした

Appleアフィリエイトプログラム
https://gyazo.com/2dd3ff2f4f8fc6da6b7162441c7e20da

使用したログイン情報は以下62行目になります。
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=235581658

ご確認をお願いいたします

コメントのURLコピー 2021-04-26 15:57:29
中田
ご確認ありがとうございます!

amazonの取得リストを拝見すると、何故か3月分の支払いレコードが2回入っている様なので、
ロジックを確認していただけますと幸いです!

こちらテストで、重複したもので削除して修正しました、


Link-Aについて、条件の変更をお願いしたく
取得タイミングを翌月末日→翌々月初日に
こちらかしこまりました


追加で以下スプレッドシート出力しています。

AdNetwork(アイモバイル)
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=553832275

ZucksAffiliate
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1562031354

Zucksアドネットワーク
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1516173027

コメントのURLコピー 2021-04-23 09:16:11
竹谷さん

上からamazonまでの出力内容確認が終わりました。
https://docs.google.com/spreadsheets/d/1k5O9AbYsbP1jAF-h-YzQBTbMvi_NvQLvmuD4X4Prbos/edit#gid=118507698
作業状況のシートに竹谷チェック項目(J列)を作成し、こちらで確認状況を記録しております。

一点、修正をお願いしたく!
amazonの取得リストを拝見すると、何故か3月分の支払いレコードが2回入っている様なので、
ロジックを確認していただけますと幸いです!
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1961511015
https://gyazo.com/0966f9ff10e6889285e93d9f8d6a4c32

コピー 2021-04-22 15:01:09 対応者 既読
竹谷さん

>引き続き、対応していきます。
>進捗内容をコメントに追記していきます。

ありがとうございます。
よろしくお願いいたします!

また、Link-Aについて、条件の変更をお願いしたく
取得タイミングを翌月末日→翌々月初日に変えてください。

コピー 2021-04-22 12:39:21 対応者 既読
中田
ご確認ありがとうございます!

reCAPTCHの突破は難しいですね…。GEOは、対応なしで大丈夫です!

はい、申し訳ございません。
よろしくお願いいたします


引き続き、対応していきます。
進捗内容をコメントに追記していきます。

コメントのURLコピー 2021-04-22 09:09:11
竹谷さん

項目指定できていなかったASPも、さくさく進めていただいてありがとうございます…!
VCまで確認しました!
問題ありません!!

>理由は、ログインの際「reCAPTCHA」があり、ロボット対策されているためです。
こちらかしこまりました!
reCAPTCHの突破は難しいですね…。GEOは、対応なしで大丈夫です!

コピー 2021-04-21 18:10:02 対応者 既読
中田
4/20作業進捗

以下5サービス設定しました
お手すきの際ご確認をお願いいたします

valuecommerce
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1881620752

Link-A
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1764124883

Amazonアソシエイト
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1961511015

楽天
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=395994388

AdCent
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=159371225


GEOのデータ取得に関して報告があります。

スクレイピングでの自動化対応ができませんでした。
理由は、ログインの際「reCAPTCHA」があり、ロボット対策されているためです。
突破は難しいです。
GEOを飛ばして作業を行っています

コメントのURLコピー 2021-04-20 18:18:16
中田
4/19 追加

Rentracks
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=755421101

こちらも設定しました

コメントのURLコピー 2021-04-19 18:41:12
中田
中田
「支払金額(税込)」の項目修正

申し訳ございませんでした

「支払金額(税込)」に修正しました

https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=536149214

コメントのURLコピー 2021-04-15 14:02:26
竹谷さん

迅速にご対応いただき大変ありがたいです!!!!

一点だけ修正を
[引用 aid=1457893 time=1618448459]afiB
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=536149214 プレビュー[/引用]
こちら、「消費税」の金額が入ってきてしまってる様なので、「支払金額(税込)」の項目の金額を出力お願いします!
https://gyazo.com/786d1e2675fc8fea3c589a81be3b9f27

コピー 2021-04-15 12:00:19 対応者 既読
中田
4/13作業進捗

スクレイピング作業状況

felmat
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=1060105789

afiB
https://docs.google.com/spreadsheets/d/1upV-9uAclRMdPsgmtdhamqHV55LRY8kxGAPPAW57-DY/edit#gid=536149214


作業状況スプレッドシート
https://docs.google.com/spreadsheets/d/1k5O9AbYsbP1jAF-h-YzQBTbMvi_NvQLvmuD4X4Prbos/edit#gid=118507698


crontabに登録内容:
50 18 01 * * cd /Users/plus/Desktop/python/accounting_processing/; bash -l -c 'python3 afib.py'

50 18 01 * * cd /Users/plus/Desktop/python/accounting_processing/; bash -l -c 'python3 felmat.py'

変更点あればご連絡ください

コメントのURLコピー 2021-04-13 16:05:33
中田
gspread メモ

ワークブックを選択

# 1.ファイル名を指定してワークブックを選択
workbook = gc.open('ファイル名')
# 2.スプレッドシートキーを指定してワークブックを選択(おすすめ)
workbook = gc.open_by_key('スプレッドシートキー')
# 3.URLを指定してワークブックを選択を開く
workbook = gc.open_by_url('URL')
#################################
# パラメータ
workbook.title #スプレッドシートのタイトルを取得する
workbook.id #スプレッドシートキーを取得する

ワークシートの操作

ワークシートの一覧を表示する

#### 前提条件 #######################
workbook = gc.open_by_key('スプレッドシートキー')
####################################
# シートの一覧を一次元配列に格納する
worksheet_list = workbook.worksheets()
#################################
# パラメータや便利なチップス
worksheet_list[0].title #一番最初のワークシートのタイトルを取得する
worksheet_list[0].id #一番最初のワークシートIDを取得する
len(worksheet_list) #ワークシートの一覧数を取得

ワークシートを指定する

#### 前提条件 #######################
workbook = gc.open_by_key('スプレッドシートキー')
####################################
# 1.最初のワークシートを指定
# [注意]workbook.sheet5のように、1以外の数字は指定できない
worksheet = workbook.sheet1
# 2.ワークシート名を直接指定
worksheet = workbook.worksheet('ワークシート名')
# 3.開きたいワークシートのインデックスを指定
# [補足]ワークシートのインデックスは0から始まる
# get_worksheet(4)は、5番目のワークシートを選択する
worksheet = workbook.get_worksheet(4)
# [応用]最後のワークシートを指定:len(worksheet_list)でワークシートの一覧数を取得
worksheet = workbook.get_worksheet(len(worksheet_list)-1)
####################################
# パラメータ
worksheet.title # ワークシート名を取得する
worksheet.update_title('新しいワークシート名') # ワークシート名を変更する
worksheet.id # ワークシートIDを取得する

ワークシートを作成・削除する

#### 前提条件 #######################
workbook = gc.open_by_key('スプレッドシートキー')
worksheet = workbook.sheet1
####################################
# ワークシートを末尾に新規作成する
# [補足]100行26列の新しいワークシートを作成
workbook.add_worksheet(title='ワークシート名', rows=100, cols=26)
# 指定したワークシートを削除する
workbook.del_worksheet(worksheet)

セルの操作

セルの番地を直接指定して、セルの値を取得する

#### 前提条件 #######################
workbook = gc.open_by_key('スプレッドシートキー')
worksheet = workbook.sheet1
####################################
# 1.ラベルを指定してセルの値を取得する
cell_value = worksheet.acell('B1').value
# 2.行番号と列番号を指定してセルの値を取得する(左:行番号、右:列番号)
cell_value = worksheet.cell(1, 2).value
# 3.ラベルを指定して複数セルの値を一次元配列に格納する
range = worksheet.range('A1:B10')

指定した行や列、ワークシート単位で、セルの値を取得する

#### 前提条件 #######################
workbook = gc.open_by_key('スプレッドシートキー')
worksheet = workbook.sheet1
####################################
# 1.行の値を全て一次元配列に格納する
# [第1引数]値を取得したい行番号
row_list = worksheet.row_values(1)
# [補足]第2引数が2の場合、値ではなく数式を格納する
row_list = worksheet.row_values(1,2)
# 2.列の値を全て一次元配列に格納する
# [第1引数]値を取得したい列番号
col_list = worksheet.col_values(1)
# [補足]第2引数が2の場合、値ではなく数式を格納する
col_list = worksheet.col_values(1,2)
# 3.ワークシートの値の全てを多次元配列に格納する
cell_list = worksheet.get_all_values()
# 4.ワークシートの値の全てを辞書型のリストに格納する
# [第1引数]empty2zero - 空のセルをゼロに変換するかどうかを指定する
# [第2引数]head - スプレッドシートの数値に従って1から始まるキーとして使用する行を決定する
# [第3引数]default_blank - 空のセルを空の文字列またはゼロ以外の何かに変換するかどうかを指定する
cell_dict = worksheet.get_all_records(empty2zero=False、head=1、default_blank='')

セルの値を更新する

#### 前提条件 #######################
workbook = gc.open_by_key('スプレッドシートキー')
worksheet = workbook.sheet1
####################################
# 1.ラベルを指定してセルの値を更新する
worksheet.update_acell('B1','更新する値')
# 2.行番号と列番号を指定してセルの値を更新する
worksheet.update_cell(1, 2, '更新する値')
# 3.セルの値をまとめて更新する(バッチ処理)
cell_list = worksheet.range('A1:B10')
for cell in cell_list:
cell.value = '更新する値'
worksheet.update_cells(cell_list)

単一のセルを検索・置換する

#### 前提条件 #######################
import re #Pythonで正規表現を使うライブラリ
workbook = gc.open_by_key('スプレッドシートキー')
worksheet = workbook.sheet1
####################################
# 1.検索
# [補足]シート内に同じ文字列が複数ある場合、1番最初に出現したセルにマッチする
cell = worksheet.find('検索したい文字列')
# [応用]正規表現で検索
value_re = re.compile(r'正規表現')
cell = worksheet.find(value_re)
##パラメータ
cell.row # 行番号を取得
cell.col # 列番号を取得
# 2.置換
worksheet.update_cell(cell.row, cell.col, '更新する値')

複数のセルを検索・置換する

#### 前提条件 #######################
import re #Pythonで正規表現を使うライブラリ
workbook = gc.open_by_key('スプレッドシートキー')
worksheet = workbook.sheet1
####################################
# 1.検索
# 一致したものは、一次元配列に格納する
cell_list = worksheet.findall('検索したい文字列')
# [応用]正規表現で検索
value_re = re.compile(r'正規表現')
cell_list = worksheet.findall(value_re)
# 2.置換
for cell in cell_list:
cell.value = '更新する値'
worksheet.update_cells(cell_list)

その他の操作

#### 前提条件 #######################
workbook = gc.open_by_key('スプレッドシートキー')
worksheet = workbook.sheet1
####################################
worksheet.add_cols(col) #col数だけ列を増やす
worksheet.add_rows(row) #row数だけ行を増やす
worksheet.col_count #選択したワークシートの列数を取得
worksheet.row_count #選択したワークシートの行数を取得
worksheet.delete_row(row) #選択した行を削除する
worksheet.clear() #選択したワークシートの値を全てクリアする

コメントのURLコピー 2021-04-13 11:09:01
中田

A8の対応だけ、個別に連絡が来る仕組みに変更になってるそうなので、こちらの対応はなしでお願いします

了解しました!

コメントのURLコピー 2021-04-12 08:29:42
竹谷さん

A8の対応だけ、個別に連絡が来る仕組みに変更になってるそうなので、こちらの対応はなしでお願いします
確認不足ですみません…!

コピー 2021-04-08 18:04:35 対応者 既読
中田

ナカタ作成のシートを共有していたつもりで話していましたが、お伝えしていませんでした。

以下スプレッドシートの内容いただきたい
https://docs.google.com/spreadsheets/d/1k5O9AbYsbP1jAF-h-YzQBTbMvi_NvQLvmuD4X4Prbos/edit?usp=sharing


すみません、こちら作成いただいてたんですね!!
見逃してました…。

いえ、中田のほうが忘れていました
昨日の時点で作成しお伝えしようとして送信ボタンおしてなかったです
申し訳ございません!


一旦入力できるところで、結構ですのでお願いできればと思います。

コメントのURLコピー 2021-04-08 14:25:11
竹谷さん

以下スプレッドシートの内容いただきたい
https://docs.google.com/spreadsheets/d/1k5O9AbYsbP1jAF-h-YzQBTbMvi_NvQLvmuD4X4Prbos/edit?usp=sharing

すみません、こちら作成いただいてたんですね!!
見逃してました…。
竹谷でまとめた内容、このシートに記載していきますね!

コピー 2021-04-08 10:13:56 対応者 既読
中田
メモ

4/8 MTG 9:30〜

以下スプレッドシートの内容いただきたい
https://docs.google.com/spreadsheets/d/1k5O9AbYsbP1jAF-h-YzQBTbMvi_NvQLvmuD4X4Prbos/edit?usp=sharing

コメントのURLコピー 2021-04-08 08:25:14

コメントフォーム

名前
タイトル
コメント
    ファイルのアップロード
    (このエリアにドロップしてください)
    ※ ファイルのURLはコメント内に含めてください。
    Markdown記法が使用可能
    # 見出し h1
    ## 見出し h2
    ### 見出し h3
    #### 見出し h4
    ##### 見出し h5
    
    **太字**
    
    水平線
    ---
    
    > 引用テキスト
    > 引用テキスト 
    
    ```
    コードの表示(ブロック)
    コードの表示(ブロック)
    コードの表示(ブロック)
    ```
    
    * リスト
    * リスト
    * リスト
    
    0. 番号リスト
    0. 番号リスト