「【python】arXivから論文を取得してLINEで手軽に見たい~その2~」では、IFTTTを使ってarXivから論文を取得して、LINEに通知するということをしました。
今回はその操作を自動化するということをしてみましょう。
バッチファイル
自動化には「バッチファイル」というものを使います。
バッチファイルとはコマンドプロンプトにさせたい仕事を記述しておくファイルのことです。
こうしておけば、そのファイルをクリックするだけで、仕事を行ってくれます。
つまり、
「Anacondaを開く→jupyternotebookを開く→コードを実行」
という一連の作業が
「バッチファイルをクリック」
という一つの動作だけで完了することができます。便利ですね。
タスクスケジューラ (余談)
さらにこれをWindowsの「タスクスケジューラ」と組み合わせて定期実行させることで寝ている間に論文を集めることができます。
タスクスケジューラの詳細はこちら。
PCの電源を自動で入れる(余談)
タスクスケジューラはPCの電源が入っていないと動作しないので、寝ている間にPCが起動するようにします。
やり方はこちら。

今回は申し訳ないですが、バッチファイルの設定方法の紹介だけさせていただきます。
時間があればこれらの記事も書いていきたいと思います。
ただ、バッチファイルで自動化できるだけでもずいぶん楽になるので、ぜひやってみてください。
バッチファイルの作成
下準備
ではまず、下準備からして行きましょう。
arxiv_job.py
今までjupyternotebookで作業していた方は新たに「arxiv_job.py」というファイルをテキストエディタで作って、そこに「【python】arXivから論文を取得してLINEで手軽に見たい~その2~」で作ったコードを貼り付けてください。
###################### #転送# ##################### from datetime import datetime import re import requests from googletrans import Translator import time from time import sleep import arxiv # webhook POST先URL API_URL = "https://maker.ifttt.com/trigger/event/with/key/your-api-key" # 検索ワード QUERY = "cat:'astro-ph.IM'" result_list = arxiv.query(query = QUERY,max_results=5,sort_by='submittedDate') translator = Translator() api_url = API_URL dt = datetime.now().strftime("%Y/%m/%d %H:%M:%S") requests.post(api_url, data={"value1": dt}) def translate_post(): title_jpn = translator.translate(title, src='en' ,dest='ja').text abst_jpn = translator.translate(abst, src='en' ,dest='ja').text print("-------"+str(count)+"ページ目-------") print("author:{}".format(author)) print(url) print("title:{}".format(title_jpn)) print("date:{}".format(date)) print("Abstract:{}".format(abst_jpn)) message = "\n".join(["<br>著者: " + author, "<br>タイトル: " + title_jpn, "<br><br>URL: " + url, "<br><br>発行日: " + date, "<br><br>概要: " + abst_jpn]) # webhookへPost response=requests.post(api_url, data={"value1": message}) sleep(5) count = 1 for result in result_list: author = result.author url = result.pdf_url title = result.title date = result.published abst = result.summary abst = abst.replace("\n","") translate_post() count += 1 print("Done")
バッチファイル作成
必要なもの
バッチファイル制作にあたり、使うエディタはなんと「メモ帳」です。Windowsならば入っていないことはまずないでしょう。
必要な情報
メモ帳にかく必要な情報が2つあります。それが
- arxiv_job.pyの階層
- activate.batの階層
です。一つずつ見ていきましょう。
arxiv_job.pyの階層
先ほど作ったarxiv_job.pyの階層です。
例えばぼくの場合、OneDriveのArxivフォルダの中のarxivフォルダの中にarxiv_job.pyが入っていたので
arxiv_job.pyの階層は
C:\Users\myname\OneDrive\Arxiv\arxiv
となります。これはみなさん違うと思うので調べてみてください。
これをメモ帳に書きます。
cd C:\Users\myname\OneDrive\Arxiv\arxiv
頭に「㏅」と書くのを忘れないでください。
activate.batの階層
これはanacondaのファイルの一つです。
ぼくの場合は
C:\Users\myname\Anaconda3\Scripts\activate.bat
となっていたのでこれをメモ帳に書きます。
call C:\Users\myname\Anaconda3\Scripts\activate.bat
頭に「call」をつけるのを忘れないでください。
ここまで来たら準備はOKです。
python arxiv_job.py
最後に
python arxiv_job.py
と書けばバッチファイルの完成です。ここまでをまとめると、
メモ帳には
cd C:\Users\myname\OneDrive\Arxiv\arxiv call C:\Users\myname\Anaconda3\Scripts\activate.bat python arxiv_job.pyと書かれていればOKです。これを「arxiv.bat」という名前で保存してください。拡張子も変えてください。
アイコンが歯車の形になっていれば成功です。ならない場合は拡張子が.txtのままかもしれません。
実行
できたファイルをクリックしてみましょう。

自動でAnacondapromptが開かれ、論文がLINEに送られてきました!!
参考



コメント
[…] 次回「【python】arXivから論文を取得してLINEで手軽に見たい~その3~」ではこの操作を定期的に行っていきたいと思います。 […]