【python】arXivから論文を取得してLINEで手軽に見たい~その2~

プログラミング

【python】arXivから論文を取得してLINEで手軽に見たい」で、arXivのAPIを使って論文を取ってきて和訳を行いました。

今回は和訳した論文をLINEに送りたいと思います。

スポンサーリンク

IFTTT

論文をLINEに送るときに使うツールですが

自動でArxivから論文を取得して、日本語に直してLineに投稿すれば、受動的に最新情報が収集できるかも!? - Qiita
はじめに最先端の論文は知りたいけど、時間が無くて論文を読む気にならない。。。arXiv見ても英語でよくわからないから、日本語がよい。。。Slackとかよくわかんないし、Lineに通知して欲しい…

にならい、IFTTTを使っていきたいと思います。

IFTTTとはTwitterやLINEなどのプラットフォームの仲介を担っているサービスのことです。

今回はIFTTTを使ってWebhookとLINEを仲介させます。

IFTTTを使っていく

IFTTTに登録する

Explore Integrations - IFTTT
Get more from the services you love on IFTTT. Explore the latest tips and tricks, browse by category, or search by name.

こちらから新規登録しましょう。

createする

登録出来たら、まず上のメニューバーから「Create」を選択しましょう。

すると次のような画面が出てくるので「This」の横の+マークをクリック

Webhookをつなげる

すると検索欄が出てくるので「Webhook」と検索し、Webhookのマークがでてきたらクリック

つぎにこの画面になったら「Conect」をクリック

次に左側のボックスをクリック

次にこの画面になったらevent名(好きな名前でOK。ただしURLにもなるのでアルファベットの方がいいかも)を決め、「Create trigger」をクリック

LINEをつなげる

つぎはLINEをつなげます。「This」のよこの+マークをクリック

すると検索欄が出てくるので「LINE」と検索しマークが出てきたらクリック

「Conect」をクリック

次に左にブロックが出てくるのでクリック

論文を投稿するLINEグループを作る

ここで、自分のLINEのアクセス許可していいか聞かれるのでメールアドレスとパスワードを入れてアクセスします。

さらに「LINE Notify」が友達になるので、スマホで「LINE Notify」とグループを作ります。

パソコンに戻る

IFTTTに戻って「Recipient」に先ほど作ったグループ名をメッセージは下のような形で入力しましょう。

記入して次の画面に進むと下のようになるので「Finish」をします。

WebhookのAPIキーを取る

ここで終わりではありません…。でもあとちょっとなので頑張りましょう!!

次に上のメニューバーから「My services」を選びます。

「Webhooks」を選びます

右上の「Documentation」をクリック

すると次のような画面が出てきます。「Your key is:」の下にある英数字の羅列は後で使うのでメモしておきましょう。

コード

では、LINEに送信していきましょう。

送信するコードはこちらになります。

######################
#転送#
#####################

from datetime import datetime
import re
import requests
from googletrans import Translator
from time import sleep

import arxiv


# webhook POST先URL
API_URL = "https://maker.ifttt.com/trigger/event/with/key/your-key"

# 検索ワード
QUERY = "cat:'astro-ph.IM'"

result_list = arxiv.query(query = QUERY,max_results=6,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")

変更するところは

 API_URL = "https://maker.ifttt.com/trigger/event/with/key/your-key" 

eventにはWebhookで自分で決めたevent名を入れて、your-keyには最後にDocumentationで確認した英数字の羅列を入れてください。

これを実行すると先ほど追加したLINEグループに和訳された論文が投稿されると思います。

また、投稿される論文の種類を変えたいときはコードが 「【python】arXivから論文を取得してLINEで手軽に見たい」 のものと同じなので、そちらを参考に適宜変えてみてください。

こんな感じに投稿されれば成功です!!

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

参考

自動でArxivから論文を取得して、日本語に直してLineに投稿すれば、受動的に最新情報が収集できるかも!? - Qiita
はじめに最先端の論文は知りたいけど、時間が無くて論文を読む気にならない。。。arXiv見ても英語でよくわからないから、日本語がよい。。。Slackとかよくわかんないし、Lineに通知して欲しい…
Explore Integrations - IFTTT
Get more from the services you love on IFTTT. Explore the latest tips and tricks, browse by category, or search by name.

コメント

  1. […] 【python】arXivから論文を取得してLINEで手軽に見たい~その2~前回、arXivのA… […]

  2. […] 「【python】arXivから論文を取得してLINEで手軽に見たい~その2~」では、IFTTTを使ってarXivから論文を取得して、LINEに通知するということをしました。 […]

タイトルとURLをコピーしました