web api를 사용하여 데이터 추출하기
2018. 3. 30. 17:54ㆍPython-이론/python-인공지능2
webAPI사용하기
지금까진 requests, urllib, selenium, phantomjs등을 사용해서 외부의 데이터들을 스크래핑해왔습니다. 오늘 해볼 것은 웹페이지에서 완전히 제공해주는 API를 사용하여 데이터를 가져올 것입니다. 웹사이트에서는 왜 API를 제공하는 것일 까요??? 그 이유는 많은 사람들이 웹페이지에 크롤링하면 서버에 과부화가 될 수 있기 때문에 차라리 크롤링을 할 거면 API를 제공하여 서버에 부담을 줄일려고 만든 것입니다. 또한 유료로 파는 API도 많은데 이를 통해서 이득도 많이 얻을 수 있습니다. 그래서 오늘은 날씨정보를 가져올 수 있는 OpenWeatherMap API를 사용해보겠습니다.
날씨 API
회원 가입 후 api키를 받으면 됩니다.
이 api는 유료 버전도 있지만 배포할 것이 아니라면 무료버전도 충분합니다. 1분에 60번 호출 할 수 있습니다.
import requests import json apiKey= "a6c578487d31e2eb09e372b7fe494ad3" cities = ["Seoul,KR","Tokyo,JP","New York,US"] api = "http://api.openweathermap.org/data/2.5/weather?q={city}&APPID={key}" for name in cities: url = api.format(city=name, key=apiKey) r= requests.get(url) data = json.loads(r.text) print("+ 도시 =",data["name"]) print("| 날씨 =",data["weather"][0]["description"]) print("| 최저기온=", data["main"]["temp_min"]) print("| 최고기온=", data["main"]["temp_max"])
결과물
현재는 api의 제공기능 중 일부만 사용했지만 필요한 데이터를 호출해서 사용하면된다.
'Python-이론 > python-인공지능2' 카테고리의 다른 글
xml데이터 분석 (0) | 2018.04.03 |
---|---|
텍스트 데이터와 바이너리 데이터 (0) | 2018.04.02 |
ubuntu에서 selenium과 Phantomjs를 사용해서 스크래핑해오기 (0) | 2018.03.29 |
로그인이 필요한 사이트 파싱해오기 (3) | 2018.03.14 |
css selector를 통해서 스크래핑해오기 (0) | 2018.03.09 |