Python으로 날씨 예보 bot 돌아가기를 만들어 보았다.

파이썬으로 날씨 예보를 만들었습니다.



타이틀대로 Python으로 일기예보bot을 만들어 보았습니다(엄밀하게는 전혀 bot가 아닙니다).
날씨 예보를 확인하는 것조차 귀찮아 버리는 성격으로 "LINE으로 보낼 수 있으면 좋겠다-"라고 생각했던 곳, 이미 선인의 분들이 하고 있었으므로, 지혜를 빌리면서(거의 파크리면서) 만들어 보았습니다.

했던 일



· 스크래핑으로 Yahoo의 날씨 정보 획득
・스크래핑으로 취득한 정보를 LINE Notify로 표시

준비



필요한 라이브러리 설치


$pip install beautifulsoup4
$pip install requests

토큰 얻기



LINENotify 에서 토큰을 발행합니다.

코드


import urllib.request
import requests
from bs4 import BeautifulSoup

line_notify_token = 'xxxxxxxxxxxxxxxxxxxxx'#発行したトークンを使います。
line_notify_api = 'https://notify-api.line.me/api/notify'

rssurl = "https://rss-weather.yahoo.co.jp/rss/days/3410.xml"#このコードでは仙台の天気情報を取得します。

URL = "https://weather.yahoo.co.jp/weather/jp/8/3410/8201.html"

tenki = []
detail = []


def Parser(rssurl):
   with urllib.request.urlopen(rssurl) as res:
      xml = res.read()
      soup = BeautifulSoup(xml, "html.parser")
      for item in soup.find_all("item"):
         title = item.find("title").string
         description = item.find("description").string
         if title.find("[ PR ]") == -1:
            tenki.append(title)
            detail.append(description)

def Otenki():
    Parser(rssurl)
    for i in range(0,2):
        message = tenki[i]
        payload = {'message': "\n" + message}
        headers = {'Authorization': 'Bearer ' + line_notify_token}
        line_notify = requests.post(line_notify_api, data=payload, headers=headers)

Otenki()

실행 결과




제대로 보내져서 기쁜 마음이 되었습니다.

감상



사실은 AWS, Heroku를 사용하여 자동화까지 하고 싶었습니다만....
지식이 아무것도 없는 상태로 뛰어들어 고액 청구가 오면 대처할 수 없기 때문에, 이번은 여기까지 해 두었습니다 웃음.

스스로 움직여 보니 모르는 대로에도 여러가지 되어 즐거웠습니다. 또 스킬을 익혀가면서 이 기사도 갱신해 가고 싶습니다.

추가



Heroku로 자동화할 수 있었으므로 다시 기사를 쓰려고 합니다.

참고 기사



【Yahoo! 날씨 리플레이스 버전】 LINE Notify + Python으로 날씨 정보를 얻는 방법
파이썬으로 일기 예보를 LINE 알림

좋은 웹페이지 즐겨찾기