# -*- coding: utf-8 -*- import requests import pdb # Head = {"Accept": "application/json", # "Authorization": "Bearer eyJrIjoiczVHc2lpWkw1a2Jsb0RxeXNKaEhPczQ3QzNtSUtRNHIiLCJuIjoibWlsZXMiLCJpZCI6MX0="} # url = "http://grafana.kingsome.cn/d/oN5uGwEik/kingsomeren-shu-qu-xian?orgId=1&from=1572226084591&to=1572247684591" import os, stat import urllib.request from datetime import datetime, date, time, timedelta import time as Time # 获取七日前0点与今日0点的时间戳 def last_seven_day(): midnight = datetime.combine(date.today(), time.min) yesterday_mid = midnight - timedelta(days=7) # 想要此前几天的,就改这个参数 epoch = datetime.utcfromtimestamp(0) midnight = midnight - timedelta(seconds=1) midnight = int((midnight - epoch).total_seconds() * 1000.0) yesterday_mid = int((yesterday_mid - epoch).total_seconds() * 1000.0) return str(yesterday_mid), str(midnight) # 下载指定的dashboard def download_db(): # 组装url,跑代码之前现在浏览器试试 dbuid = "p5aRo00Wz" # dbuid = "mI5F3QnWk" grafana_server = "https://grafana-test.kingsome.cn" # grafana_server = "http://grafana.kingsome.cn" # url = f"""{grafana_server}/render/d/{dbuid}?from{last_seven_day()[0]}&to={last_seven_day()[ # 1]}&&var-datasource=xxx&width=1500&height=700&tz=UTC%2B08%3A00""" url="http://grafana.kingsome.cn/render/d-solo/hzR9LcoZk/taptappai-ming-fen-xi?orgId=1&from=1572413361151&to=1572434961151&var-gameid=10056&var-date=All&var-catename=download&panelId=2&width=1000&height=1500&tz=Asia%2FShanghai" # url="http://grafana.kingsome.cn/d/e2zRV1emk/shu-ju-yan-shi?orgId=1&from=1571715151698&to=1572319951698&var-name=All&var-date=All" # header = {"Accept": "application/json", "Content-Type": "application/json", # "Authorization": "Bearer eyJrIjoiczVHc2lpWkw1a2Jsb0RxeXNKaEhPczQ3QzNtSUtRNHIiLCJuIjoibWlsZXMiLCJpZCI6MX0="} keys="eyJrIjoiczVHc2lpWkw1a2Jsb0RxeXNKaEhPczQ3QzNtSUtRNHIiLCJuIjoibWlsZXMiLCJpZCI6MX0=" #keys = "eyJrIjoiWGFFMXp4YTlaODFHUFpVQmxBcHVDWUZNSUFvb2doNDEiLCJuIjoidGVzdCIsImlkIjoyfQ==" header = {"Accept": "application/json", "Content-Type": "application/json", "Authorization": f"Bearer {keys}"} print(url) request = urllib.request.Request(url, headers=header) #pdb.set_trace() try: # 访问并下载面板图 response = urllib.request.urlopen(request) time_now = int(Time.time()) time_local = Time.localtime(time_now) dt = Time.strftime("%Y-%m-%d", time_local) img_name = f"img{dt}.png" filename = img_name # print(response.getcode()) if (int(response.getcode()) == 200): with open(filename, "wb") as f: f.write(response.read()) return filename else: return "failed" except: return "failed" if __name__ == "__main__": download_db()