Python替换url库请求带着请求和美感

2024-03-28 08:14:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我用urllib编写了以下函数,但我想将其更新为仅依赖于获取信息的请求和解析xml数据的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)

Tags: importrenodeparserequestxmlparamsurllib
1条回答
网友
1楼 · 发布于 2024-03-28 08:14:03
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)

相关问题 更多 >