Skip to content

รับข้อมูลสภาพอากาศจาก Yahoo! ด้วย Python

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปรับข้อมูลสภาพอากาศจาก Yahoo! ด้วย Python กันครับ


บริการของ Yahoo มีบริการข้อมูลสภาพอากาศโดยมีฐานข้อมูลสภาพอากาศอยู่ทั่วโลกเลยครับ เรียกได้ว่ามีข้อมูลเกือบทุกประเทศ และ Yahoo! เข้าให้นักพัฒนาสามารถเข้าถึงคลังข้อมูลสภาพอากาศผ่าน API ต่าง ๆ ได้ครับ

ในภาษา Python เราสามารถเข้าถึงข้อมูลสภาพอากาศของ Yahoo! ได้ง่าย ๆ ด้วย โมดูล yweather ครับ

โมดูล yweather

  • รองรับทั้ง Python 2 , Python 3
  • ใช้ MIT License
  • ไม่ต้องสมัคร Yahoo api เพราะโมดูลนี้ใช้ Yahoo! Weather RSS feed ครับ

สามารถติดตั้งได้โดยใช้คำสั่ง pip:

$ pip install yweather

ตัวอย่างการใช้งาน

>>> import yweather
>>> client = yweather.Client()
>>> client.fetch_woeid("nangrong, Thailand") #รับไอดีของข้อมูลสถานที่เก็บสภาพอากาศ
'28341177'
>>> data = client.fetch_woeid("nangrong, Thailand") #กำหนดให้ตัวแปร data แทนไอดี
>>> weather = client.fetch_weather(data, metric=True)
>>> weather["forecast"][0]["high"] # รับข้อมูลอุณหภูมิ
'36'
>>> weather["atmosphere"]["humidity"] # รับข้อมูลอุณหภูมิความรู้สึก
'49'

อ่าน API ในการใช้งานได้ที่ https://yweather.readthedocs.org/en/v0.1/api.html
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

Published on Categories ไม่มีหมวดหมู่

About wannaphong

วรรณพงษ์ ภัททิยไพบูลย์ ผู้ดูแลเว็บ wannaphong.com และผู้เขียนบทความบล็อกนี้ นักศึกษาชั้นปีที่ 1 สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย

2 thoughts on “รับข้อมูลสภาพอากาศจาก Yahoo! ด้วย Python

  1. Mek

    พอผมรันโค๊ดตัว weather = client.fetch_weather(data, metric=True)
    แล้วมันขึ้นยังงี้แก้ไขยังไงหรอครับ

    Traceback (most recent call last):
    File "T:/Chatbot/Testx.py", line 7, in
    weather = client.fetch_weather(data, metric=True)
    File "C:\Python34\lib\site-packages\yweather.py", line 180, in fetch_weather
    rss = self._fetch_xml(url)
    File "C:\Python34\lib\site-packages\yweather.py", line 344, in _fetch_xml
    with contextlib.closing(urlopen(url)) as f:
    File "C:\Python34\lib\urllib\request.py", line 161, in urlopen
    return opener.open(url, data, timeout)
    File "C:\Python34\lib\urllib\request.py", line 464, in open
    response = self._open(req, data)
    File "C:\Python34\lib\urllib\request.py", line 482, in _open
    '_open', req)
    File "C:\Python34\lib\urllib\request.py", line 442, in _call_chain
    result = func(*args)
    File "C:\Python34\lib\urllib\request.py", line 1211, in http_open
    return self.do_open(http.client.HTTPConnection, req)
    File "C:\Python34\lib\urllib\request.py", line 1186, in do_open
    r = h.getresponse()
    File "C:\Python34\lib\http\client.py", line 1227, in getresponse
    response.begin()
    File "C:\Python34\lib\http\client.py", line 386, in begin
    version, status, reason = self._read_status()
    File "C:\Python34\lib\http\client.py", line 356, in _read_status
    raise BadStatusLine(line)
    http.client.BadStatusLine: ''

    Reply

ใส่ความเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องที่ต้องการถูกทำเครื่องหมาย *