很多网站提供了API供开发者获取数据用,通常返回的数据为JSON格式,本文以百度开放者平台为例对通过API进行数据获取进行实验,由于百度API接口很多,后续会把实验的接口陆续补充上去,都是很简单的程序,以后可以以此为基础编写更综合的应用程序。
百度API的使用步骤都差不多,注册百度开发者平台->获得免费的AppID和Key->构造开发者文档中提供的URL->GET获取Json数据->解析展示。以下小程序简单不做过多解释,屏蔽了我自己的AppID和Key。
1、百度翻译的使用
支持26中语言的翻译,翻译准确性还是很不错的。
import requests
import random
import hashlib
import json
import pprint
appid = '12345678'
key = 'dasd457dawgjj54j01qf'
url = 'http://api.fanyi.baidu.com/api/trans/vip/translate?'
#需要翻译的文本
q = '建设中国特色社会主义'
#原语言
from_language ='zh'
#目的语言
to_language = 'en'
#随机数
salt = random.randint(32768, 65536)
#签名
sign = appid+q+str(salt)+key
sign = sign.encode('utf-8')
sign_new = hashlib.md5(sign).hexdigest()
#生成URL
new_url = url + 'q='+q+'&from='+from_language+'&to='+to_language+'&appid='+appid+'&salt='+str(salt)+'&sign='+sign_new
res = requests.get(new_url)
print(res.text)
json_data = json.loads(res.text)
#translate_result = json_data["trans_result"]["dst"]
pprint.pprint(json_data["trans_result"])
[{'dst': 'Building socialism with Chinese characteristics',
2.百度地图获取地点经纬度
import json
import requests
from urllib.request import urlopen,quote
import pprint
address = quote("长沙")
key = "dajskjda1231390kjbnreitie1043"
url = "http://api.map.baidu.com/geocoder/v2/"
new_url = url+"?address="+address+"&output=json"+"&ak="+key
url = "http://restapi.amap.com/v3/geocode/geo"
res = requests.get(new_url)
json_data = json.loads(res.text)
print('经度是:'+str(json_data['result']['location']['lat']))
print('维度是:'+str(json_data['result']['location']['lng']))
经度是:28.21347823085322