写个脚本一共完成了三件事: 第一,python调用http接口, 第二,把调用到的数据写入MySQL数据库, 第三,python调用wsdl接口,获取录音文件, import time import json import pprint import MySQLdb import urllib import os import urllib2 #调报表接口用 import suds #调录音用 pageNum = range(1,1000) for a in pageNum: url = "http://x.x.x.x:xx/agentProxy/getCallDetail?RN=118117&callType=1&entId=xxxxx&pwd=61712&startTime=20170517000000&endTime=20170517235959&pageNum=" + str(a) req = urllib2.Request(url) res_data = urllib2.urlopen(req) res = res_data.read() data = json.loads(res) data1 = data[0] data2 = data1["callDetailArray"] data4 = data1["retCode"] data5 = data1["retMsg"] data6 = data1["nextPageNum"] data7 = data1["RN"] data8 = data1["entId"] if len(data1['callDetailArray']) == 0: break #print "返回代码:",data4,"是否成功:",data5,"下一页:",data6,"RN:",data7,"企业编号:",data8,"本页总条数:",len(data1['callDetailArray']) data9 = len(data1['callDetailArray']) l = range(len(data1['callDetailArray'])) for i in l: data3 = (data2[i]) data10 = int(data3['sessionId']) data11 = hex(data10) data12 = data11[2:] data13 = data12[:-1] data14 = str(data3['resourceId']) data15 = time.strftime("%Y-%m-%d %X", time.localtime()) url = "http://x.x.x.x:xx/dcmsWebservice/webservice/QueryRecord?wsdl" client=suds.client.Client(url) res = client.service['QueryRecord'].queryRecordAddr("xxxxx",data14,data14,data13) record= str(res) print record db = MySQLdb.connect("x.x.x.x","ucds","ucds","report_detail",charset = "utf8") cursor = db.cursor() sql = """insert into outbound (record_url,sessionId_16,sessionId,resourceId,resourceName,resourceDN,skillId,remoteUrl,localUrl,startTime,endTime, alertDuration,talkDuration,acwDuration,ivrDuration,joinDuration,endType,insertTime) values("%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s","%s")"""\ %(record,data13,data3['sessionId'],data3['resourceId'],data3['resourceName'],data3['resourceDN'], data3['skillId'],data3['remoteUrl'],data3['localUrl'],data3['startTime'],data3['endTime'],data3['alertDuration'],data3['talkDuration'],data3['acwDuration'],data3['ivrDuration'],data3['joinDuration'],data3['endType'],data15) cursor.execute(sql) db.commit() cursor.close() db.close() path=r'E:\record\xxxxxxx' if record == str('-5'): print "返回-5,无录音文件" else: wav = record.split('/') wav1 = wav[8] dest_dir=os.path.join(path,wav1) urllib.urlretrieve(record,dest_dir) print "本次共同步:",(a-1)*100-int(data9),"条数据"