본문 바로가기

파이썬

파이썬 웹 크롤링으로 일본 기상도 자동으로 받기

뱃사람한테 중요한   하나가 바로 기상입니다. 아무리 기술이 발전한다 한들 성난 파도를 인위적으로 잠재우기에는 불가능합니다.

그러한 이유로 배에서는 기상 상태를 체크하기 위해 Weather Fax 항해장비를 가지고 주기적으로 기상도를 받습니다.

한중일 항로를 다니는 선박들은 거의 일본의 JMA(Japan Meteorological Agency)에서 6시간마다 업데이트를 해주는 기상도를 지정된 주파수를 통해 수신합니다.

 기상도는 항해장비인 Weather Fax 받지만, 바다 한가운데가 아닌 데이터가 터지는 육지가 주변에 있다면 홈페이지를 통해서도 받을  있습니다.

Weather Fax 항해장비를 통해 기상도를 받으면 인쇄되는 시간이 20 정도 걸리기 때문에 인터넷이 된다면 JMA 홈페이지를 통해 받는 편이 수월합니다.

 

인생을 자동화하고 싶은 저는 버튼 클릭  번이면 자동으로 내려받을  있게 아주 간단한 파이썬  크롤링 코드를 작성했습니다.

 

준비물

1.      Python

2.      Selenium 라이브러리

3.      Selenium Chrome driver

 

준비물 준비 방법

1.      https://www.python.org/downloads/ 에서 다운받아 줍니다.

2.      pip install selenium 코드를 입력해서 다운받습니다.

3.      https://sites.google.com/a/chromium.org/chromedriver/ 에서 다운받아 줍니다.

 

전체적인 코드는 이렇습니다.

 시작 전에 chromedriver.exe파일을 python 소스코드와 함께 놔두는  잊지마세용!

 

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.action_chains import ActionChains

 

# 파이썬 폴더의 크롬 드라이버

driver = webdriver.Chrome("./chromedriver")

 

try:

    # 일본 기상청의 WEATHER MAP으로 이동

    driver.get("https://www.jma.go.jp/en/g3/")

 

    elem = driver.find_element_by_class_name("pagelink")

    # Analysis Chart (PDF) 찾기

    pdf = elem.find_element_by_tag_name("a")

    pdf.click()

 

except Exception as e:

    print(e)

    

finally:

    print("finish")

 

 

그리고 python 실행하면..(저는 visual studio 사용하고 있습니다.)

 

 

 

그럼 이렇게 자동으로 JMA 홈페이지로 들어가 최신 기상도를 다운받을  있습니다.(마지막에 다운로드 버튼은 누르셔야 합니다 ㅎㅎ..)

감사합니다.