楽しんだ者勝ち~就活を終えて伝えたいこと~

MENU

【Python】arXivの論文をスクレイピングしてLine Notifyに送ってみた

f:id:mottobungaku:20200628002723p:plain

はじめに

 ここでは、arXivの論文をスクレイピングしてLine Notifyに送信する方法を紹介しています。

流れ

  1. arXivスクレイピング
  2. IFTTTからLine Notify送信
  3. Crontabで定期実行

Line Notify

 Line Notifyの詳しい設定はこちらを覗いてください。

環境構築

 arXivの論文をスクレイピングするにあたり、APIのラッパーを使います。
 まずは、以下をインストールします。

pip install arxiv

コード

from datetime import datetime
import re
import requests
from time import sleep

import arxiv

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

# 検索ワード
QUERY = "cat:'*******'"

result_list = arxiv.query(query = QUERY,max_results=6,sort_by='submittedDate')

api_url = API_URL

dt = datetime.now().strftime("%Y/%m/%d %H:%M:%S")
requests.post(api_url, data={"value1": dt})

def translate_post():

    message = "\n".join(["著者:  " + author, "\nタイトル:  " + title, "\nURL: " + url, "\n発行日: " + date, "\n概要: " + abst])

    # 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")

 プログラムは「参照元」に挙げているサイトを基に作成しました。

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

 webhookで設定したURLをここに書き込みます。詳しい設定は「IFTTTに登録する」で挙げているサイトを参考にしてください。

QUERY = "cat:'*******'"

 ここでは、スクレイピングするcategoryを指定します。

IFTTTに登録

 上記のサイトを参照して登録しました。

結果

f:id:mottobungaku:20200628013400j:plain
 Lineに通知が来れば成功です。Cronなどを設定して自動化するとより便利になると思います。
 Crontabの詳しい設定はこちらを覗いてください。
 それでは今日も良いライフハック生活を~