2017-01-29 7 views
0

私は以下の関数をurllibで書いていますが、情報を取得するためのリクエストにのみ依存するように更新したいと思いますし、XMLデータを解析するためにBeautifulSoupを更新したいと思います。それは可能ですか?Pythonはurl lib.requestsをリクエストとBeautifulSoupに置き換えます

import re 
import urllib.request 
import urllib.parse 
import xml.dom.minidom 

def magnetic_variation(coordinates): 
    rc = [] 
    lat, lon = coordinates 
    params = urllib.parse.urlencode({'lat1': lat, 'lon1': lon, 'resultFormat': 'xml', 'startMonth': now.month}) 
    url = urllib.request.urlopen("http://www.ngdc.noaa.gov/geomag-web/calculators/calculateDeclination?%s" % params) 
    dom = xml.dom.minidom.parseString(url.read()) 
    for node in dom.getElementsByTagName("declination")[0].childNodes: 
     if node.nodeType == node.TEXT_NODE: 
      rc.append(node.data) 
    rawdata = ''.join(rc)  
    variation = str(re.findall(r"[-+]?\d*\.\d+|\d+", rawdata)[0]) 
    return round(float(variation),2) 

答えて

0
import requests, bs4 

def magnetic_variation(coordinates): 
    rc = [] 
    lat, lon = coordinates 
    params = {'lat1': lat, 'lon1': lon, 'resultFormat': 'xml', 'startMonth': now.month} 
    url = requests.get("http://www.ngdc.noaa.gov/geomag-web/calculators/calculateDeclination", params=params) 
    dom = bs4.BeautifulSoup(url.text) 

# parse the dom 

return round(float(variation),2) 
関連する問題