ここでは、「【Python応用】noteの編集部のおすすめ記事のタイトルをスクレイピング」で行った結果をLineに送信する方法について解説しています。
この記事の対象
行ったこと
編集部のおすすめの記事タイトルをスクレイピングして、Line Notifyを用いてスクレイピングした内容を送信してみました。
プログラム
from bs4 import BeautifulSoup
import requests
import urllib.request as request
import datetime
import json
def main():
#1---URL指定
url = "https://note.com/recommend"
#2---headers指定
headers = {"User-Agent": "***"}
soup = BeautifulSoup(requests.get(url, headers = headers).content,'html.parser')
text = "https://note.com/"
#3---h3のタイトル抽出
all_h3 = soup.select('h3')
for i in range(10):
cell = all_h3[i].get_text()
message = str(cell) + "\n" + text
#4---notifyのapi
url = "https://notify-api.line.me/api/notify"
#5---アクセストークンを指定
token = "***"
headers = {"Authorization" : "Bearer "+ token}
payload = {"message" : message}
r = requests.post(url ,headers = headers ,params=payload)
if __name__ == '__main__':
main()
上記がプログラムになります。
それでは解説していきます。(1~3の解説はこちらを参照下さい。)
#4---notifyのapi
url = "https://notify-api.line.me/api/notify"
4の部分では、Line Notifyのurlを指定しています。
#5---アクセストークンを指定
token = "***"
headers = {"Authorization" : "Bearer "+ token}
payload = {"message" : message}
r = requests.post(url ,headers = headers ,params=payload)
5の部分ではアクセストークンを指定して、headersとpayloadを指定しています。そして、requestsを用いてポストしています。アクセストークンの取得方法については別途紹介します。
結果
スクレイピングしたタイトルとnoteのurlが送れていることが確認できます。
スクレイピングした結果をlineに送れると自分から取りに行く必要がないのでラクです。様々な情報を一つのツールに集約できたらQOLが上がると思います。
また、Cronなどで時間指定すると自動化できて良いかもしれません。是非、自動化に挑戦してみて下さい。