MacのSafariのe-Taxソフト(WEB版)にPythonで自動ログインする方法

  • URLをコピーしました!

Pythonを使って、サイトにログインする方法をまとめました。
今回は、Macでやる場合を中心に解説します。
(改良すればWindowsでも使えます)

※e-TaxサイトとPython by Sony α7S 70−200mmF4

Macのe-Tax

MacにはRPAがありません。
(Automatorはありますが)
RPAはWindows用なのです。
Pythonだと、MacでもWindowsでも使えます。
Mac、またはMacとWindowsを使っているなら自動化はPythonを使うと便利です。

e-TaxもMacで使えます。
最近は。
以前は(実質的に)ダメでした。

このe-Taxへのログインは、IDとパスワードをサイトに保存することができず(IDが4文字ずつ4つにわかれているからでしょう)、毎回入れなければいけません。
自分のだけでもそれなりの手数になりますが、税理士業では、顧問のお客様、個別コンサルティングのお客様のログインをすることも多いので、Pythonでログイン、そしてそれ以降を自動化しています。
今回は、ログインまでを取り上げます。

ただ、今もChromeでは使えず、Safariでしか使えません。
(WindowsのChromeは使えます)
こういった警告は出ます。

Safariでも記事執筆時点でこういった警告が出ます。
Safariのバージョンで、14.0には対応していて、この警告が出ないのですが、今の最新である14.1だと警告が出るのです。
これくらい対応してくれても……。
使えるだけマシかもしれませんが。

この警告のおかげで、Pythonのプログラミングの手間が増えます。

そして、Safariでも設定が必要です。

 

MacのSafariでPythonを使うには

Safariで自動化するなら、まずSafariの[環境設定]→[詳細]で[メニューバーに”開発”メニューを表示]にチェックを入れましょう。

その[開発]の[リモートオートメーションを許可]をクリックすれば、Pythonで自動化できるようになります。

では、Pythonを書いていきましょう。
Pythonの基本的な設定、使い方はこちらを参考にしていただければ。
PythonとEXCELマクロ比較。Pythonの導入・設定【Windows・Mac両対応】 | EX-IT

MacのSafariでe-TaxサイトにPythonでログイン

Pythonで自動化する工程を確認しておきましょう。
まず、サイトにアクセスするとこの警告が出てくるので閉じます。
(MacのSafariへの対応が済んだ場合、そしてWindowsでは必要ありません)

この[閉じる]ボタンをクリックしなければいけません。

[ログイン](オレンジ色)をクリックすると、こういった画面が出てきますので、ID(利用者識別番号)、パスワード(暗証番号)を入れ、[ログイン]ボタンをクリックすればログインできるのです。

こういったコードを書きました。
※ID、パスワードは架空のものです。

#ライブラリ
from selenium import webdriver
import time

#■設定
url='https://clientweb.e-tax.nta.go.jp/UF_WEB/WP000/FCSE00001/SE00S010SCR.do'#サイト
id1='2813' #ID
id2='0721' #ID
id3='2094' #ID
id4='0040' #ID
password='abcde111' #パスワード

#サイトにアクセス
driver = webdriver.Safari()
driver.get(url)

time.sleep(1)#待機

#「閉じる」をクリック
close_button=driver.find_element_by_xpath('//*[@id="dijit_layout_ContentPane_13"]/div[6]/a/img')
time.sleep(1)
close_button.click()

time.sleep(3)

#ログイン
driver.find_element_by_xpath('//*[@id="dijit_layout_ContentPane_2"]/div[4]/a/img').click()
time.sleep(3)

##ID
driver.find_element_by_xpath('//*[@id="maskat_widget_dojo_88"]').send_keys(id1)
driver.find_element_by_xpath('//*[@id="maskat_widget_dojo_89"]').send_keys(id2)
driver.find_element_by_xpath('//*[@id="maskat_widget_dojo_90"]').send_keys(id3)
driver.find_element_by_xpath('//*[@id="maskat_widget_dojo_91"]').send_keys(id4)

##パスワード
driver.find_element_by_xpath('//*[@id="maskat_widget_dojo_100"]').send_keys(password)

##ログインボタン
login_button=driver.find_element_by_xpath('//*[@id="maskat_widget_dojo_75"]/div[2]/div[12]/a/img')
time.sleep(1)
login_button.click()
login_button.click()



まずは、ライブラリ(外部の機能)を読み込みます。

今回使うのは、ブラウザを操作するseleniumと処理を待つtime。
このうち、seleniumは、事前にインポートが必要です。

次に設定をしていきます。
読み込むサイトをurlに入れ、IDを4つにわけて入れ、パスワードを入れていきます。

ウェブドライバーというブラウザを操作する機能を読み込みましょう。
Chromeの場合は、別途ダウンロードする必要がありますが、Safariは、この1文で読み込めます。

driver.get(url)でサイトにアクセスするという意味です。
このurlには、先ほど設定したe-Taxソフト(WEB版)のURLが入ります。
その後1秒待っています。
何秒待つかは、パソコンの処理速度、ネットの速度にもよりますので、適宜変えていただければ。
処理できるようになってから次に進むというふうにも書けるのですが、複雑になり、安定しないのでこうしています。

サイトにアクセスすると出てくる警告を閉じる過程です。
こういう名前がついているので、このように指定します。

こういったボタンの名前は、Safariで右クリックして[要素の詳細を表示]、

該当箇所を[コピー]→[XPath]で、Pythonに使うことができます。

ログインボタンをクリックし、ID、パスワードを入れ、再度ログインボタンをクリックします。
最後のクリックは、いろいろやった結果、動作が安定せず(うまくいくときといかないときがある)、こうやると、安定しました。

 

なお、ExcelからID、パスワードを読み取ることもできます。
こういったファイルをつくっておき、

下記の黄色い部分を追加、変更すれば、Excelから読み取れるのです。
私はこの方法を使っています。
Excelで該当の番号を呼び出して、Pythonを実行して自動ログインするという流れです。

Excelに複数のデータがあれば、繰り返し大量の処理をすることもできます。
まあ、大量の処理はしませんが。

MacでPythonを使いたいという方は参考にしていただければ。



■編集後記
昨日は、YouTubeを中心に。
3本撮りました。
水、木、金でアップします。
タイミングを工夫しながら月〜金でアップしていく予定です。

14日にPS5の鬼滅が出ますが、様子見。
キャラゲー(キャラをつかったゲーム)は、おもしろくないリスクがあるので。
開発会社は信頼できるところなのですが。

1日1新Kindle『1日1新』Instagram『1日1新』
ブルーレイ マクロスフロンティア イツワリノウタヒメ

■娘(4歳7ヶ月)日記→Kindle『娘日記』
退院後で風呂につかるのが解禁だったので、一緒に泡風呂。
昨日は、自分で髪を洗うのに挑戦しました。
うまく洗えています。
プリキュアのトリートメントも……。
さすがです。

  • URLをコピーしました!