#!/usr/bin/env python
#coding:utf-8
import os , sys
from time import strftime
from sys import exit
import json ,re
from aliyunsdkcore.client import AcsClient
from aliyunsdkalidns.request.v20150109 import DescribeDomainsRequest,DescribeDomainRecordsRequest,UpdateDomainRecordRequest
from openpyxl import Workbook
import urllib

ID="LTXXXW#SS85VctH"
Secret="rdAMyKKb82KPW4uBLsynUun7n"
RegionId="cn-beijing" 
client = AcsClient(ID,Secret,RegionId)
def GetLogin():
    req = DescribeDomainsRequest.DescribeDomainsRequest()
    #status, headers, body = client.get_response(req)
    #status, headers, body = client.do_action_with_exception(acs_request=req)
    body = client.do_action_with_exception(req)
    print (json.loads(body["Domains"]))
    exit()
    if status == 200:
        pat = re.compile('(.*?)')
        DomainName=re.findall(pat, body)
        print(DomainName)
        return DomainName
    else:
        print('Unexpected errors: status=%d, error=%s' % (status, body))
def GetDomainList():
    DomainList = DescribeDomainsRequest.DescribeDomainsRequest()
    DomainList.set_accept_format('json')
    try:
        DNSListJson = json.loads(client.do_action_with_exception(DomainList))['Domains']['Domain']
        #print(DNSListJson['Domains']['Domain'])
        DomainNames=[]
        for Domain in DNSListJson:
            DomainNames.append(Domain['DomainName'])
        #print (DomainNames)
        return DomainNames
    except ValueError as e :
        pass
def GetAllDomainRecords(DomainName):
    DomainRecords = DescribeDomainRecordsRequest.DescribeDomainRecordsRequest()
    DomainRecords.set_accept_format('json')
    DomainRecords.set_DomainName(DomainName)
    DomainRecordsJson = json.loads(client.do_action_with_exception(DomainRecords))
    for x in DomainRecordsJson['DomainRecords']['Record']:
        #print(x)
        pass
    return DomainRecordsJson['DomainRecords']['Record']
def WriteExeclpy(FileName,Records,WorkTable='Sheet1'):
    wb = Workbook()
    sheet = wb.active
    sheet.title = str(WorkTable)
    title=list(Records[0].keys())
    for m in range(0,len(title)):
        #print (title[m])
        sheet.cell(row=1, column=int(m+1)).value = '%s' % (title[m])
    i = 2
    table = {}
    for record in Records:
        #print (record)
        for m in range(0, len(title)):
            sheet.cell(row=i, column=int(m + 1)).value = '%s' % (record[title[m]])
        i=i+1
    wb.save(FileName)
def Test():
    pass
if __name__ == '__main__':
    GetDomainList()
    Records=GetAllDomainRecords('itxxx.cc')
    FileName = r'/tmp/execl_test10.xlsx'
    #print(Records)
    WriteExeclpy(FileName=FileName,Records=Records,WorkTable=strftime('%Y-%m-%d'))


效果图:

将阿里域名配置保存到execl文件(后面将使用到本地数据库平台等)_第1张图片