Yahoo 날씨를 스크래핑 해 보았다 (Python 편)

소개



자신의 메모에 가깝습니다만 모처럼 해 보았으므로 기사로 해 보았습니다.
원래 라즈파이 사이니지를 하기 위해서 여러가지 조사했습니다만,
좀처럼 핀 포인트로 원하는 정보가 없어 결국 스크래핑 방법만 조사해 자력으로 어떻게든 했습니다.
(Python 사용도 웹계 쿠마의 사람도 아니기 때문에 일순간 고전했습니다 ...)
yahoo라고 날씨의 api가 있습니다만 사용하지 않았던 것은 강수량밖에 모르기 때문입니다.

C#편은
htps : // 이 m / 모노 쇼베 / ms / 3 어 0c051d2 아 dba 698 아 4
있습니다.

참고로 한 것



파이썬에서의 스크래핑에 있어서 아래의 기사를 참고했습니다.
파이썬으로 스크래핑하여 일기 예보를 GoogleHome으로 말하기
파이썬 웹 스크래핑 실천 입문

스크래핑 자체에 관한 좋은 나쁜 설명도 있으므로 읽어 두는 것이 좋다고 생각합니다.

그건 그렇고, 야후 날씨이지만, 어쩌면 스크래핑은 금지되지 않습니다.
야후 금융은 분명히 금지되었지만 날씨에 관해서는 금지하는 것 같은 설명은 발견되지 않았습니다.
단지 절도는 지킵시다. 정기적으로 스크래핑해도 날씨는 1시간 또는 30분 정도의 액세스로 충분하다고 생각합니다.

할 일



여러가지 취하고 싶은 정보는 있습니다만 우선 도쿄의 오늘의 날씨를 취득했습니다.
아래 이미지의 오늘과 내일의 날씨를 얻으십시오.


코드



실제로 코드를 실행하면 오늘과 내일 도쿄의 날씨를 얻을 수 있습니다. (Visual Code로 여러가지 쓰거나 디버그했습니다.)
대체로 코멘트에 무엇을 하고 있는지 써 있습니다.
거의 copipe의 소스입니다만 주목 포인트는 select_one로 text의 부분을 취득하고 있는 곳입니다.
Google 크롬에서 자동으로 얻으려고 했는데 작동하지 않았기 때문에 수작업으로 찾아 갔는데 잘 갔습니다.

tenki.py
import urllib3
from bs4 import BeautifulSoup

#アクセスするURL
url = 'https://weather.yahoo.co.jp/weather/jp/13/4410.html'

#URLにアクセスする 戻り値にはアクセスした結果やHTMLなどが入ったinstanceが帰ってきます
http = urllib3.PoolManager()
instance = http.request('GET', url)
#instanceからHTMLを取り出して、BeautifulSoupで扱えるようにパースします
soup = BeautifulSoup(instance.data, 'html.parser')

#CSSセレクターで天気のテキストを取得します。
#今日の天気
tenki_today = soup.select_one('#main > div.forecastCity > table > tr > td > div > p.pict')
print ("今日の天気は"+tenki_today.text)

#明日の天気
tenki_tomorrow = soup.select_one('#main > div.forecastCity > table > tr > td + td > div > p.pict')
print ("明日の天気は"+tenki_tomorrow.text)

#一瞬で画面が消えないよう入力されるまで待機
input()

이하, 실행 결과


끝에



이 코드를 바탕으로 여러 가지 할 수 있다고 생각합니다.
정기적으로 취득하는 등은 이 기사에 가필하거나 라즈파이 사이니지의 기사에 쓴다고 생각합니다.
그리고 환경의 문제로 실행할 수 없었던 등 있다고 생각하기 때문에 그 근처는 나중에 가필합니다.

좋은 웹페이지 즐겨찾기