首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python用requests和BeautifulSoup替换url lib.requests

Python用requests和BeautifulSoup替换url lib.requests
EN

Stack Overflow用户
提问于 2017-01-30 05:16:43
回答 1查看 79关注 0票数 0

我有以下用urllib编写的函数,但我想更新它,使其仅依赖于获取信息的请求和解析xml数据的BeautifulSoup。这有可能吗?

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2017-01-30 09:57:44

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41926049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档