我已经编写了这段代码来解析我通过API访问的URL中的XML数据。我想将此数据写入在指定时间段更新的Excel工作表中。我将如何去做呢?
import urllib.request
import xml.sax
class GoogleHandler(xml.sax.ContentHandler):
def characters(self, content):
print(content)
def startElement(self, name, attrs):
if name == ('name'):
print("Location:", attrs)
Day.append(attrs)
if name == ("region"):
print("Region:", attrs)
region.append(attrs)
if name == ("temp_f"):
print("Temperature:", attrs)
temp.append(attrs)
if name == ("date"):
print("Date:", attrs)
Date.append(attrs)
if name == ("maxtemp_f"):
print("MaxTemp:", attrs)
MaxTemp.append(attrs)
if name == ("mintemp_f"):
print("MinTemp:", attrs)
MinTemp.append(attrs)
if name == ("text"):
print("Conditions:", attrs)
Condition.append(attrs)
if name == ("icon"):
print("Icon:", attrs)
Condition.append(attrs)
xmlResponse = urllib.request.urlopen('https://api.apixu.com/v1/forecast.xml?key=b87cee31cb6e4bea8c6163500192101&q=45242&days=7')
parser = xml.sax.make_parser()
parser.setContentHandler(GoogleHandler())
parser.parse(xmlResponse)
答案 0 :(得分:0)
要从url中获取数据,可以使用requests库,您将实现以下内容:
r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
data = r.content # or r.text if you do not want binary data
如果xml不是必需的,也许您也可以使用r.json()
方法将响应作为json获取。
python中有很多库可以解析xml文件,我通常使用lxml库
要在excel中写输出,同样有很多库,您可以使用Python-Excel。
要安排脚本的执行时间,可以设置cron-job(或Windows上的计划任务)以在需要时运行它。