【Python応用】noteの編集部のおすすめ記事のタイトルをスクレイピング-Lineに送信してみた-

Python

ここでは、「【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などで時間指定すると自動化できて良いかもしれません。是非、自動化に挑戦してみて下さい。

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