Python으로 날씨 예보 bot 돌아가기를 만들어 보았다.
6591 단어 경 6파이썬LineNotifyapi스크래핑
파이썬으로 날씨 예보를 만들었습니다.
타이틀대로 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 알림
Reference
이 문제에 관하여(Python으로 날씨 예보 bot 돌아가기를 만들어 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/think_reed/items/1ac7e411740fae182ac2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$pip install beautifulsoup4
$pip install requests
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()
Reference
이 문제에 관하여(Python으로 날씨 예보 bot 돌아가기를 만들어 보았다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/think_reed/items/1ac7e411740fae182ac2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)