首页 > 代码库 > 获取百度API坐标
获取百度API坐标
#coding=utf-8 import requests import sys reload(sys) sys.setdefaultencoding(‘utf-8‘) import re,csv import threading,time proxies = {‘http‘: ‘http://username:password@proxyhk.huawei.com:8080‘, ‘https‘: ‘https://username:password@proxyhk.huawei.com:8080‘} def fuc(apikey): while True: try: with lock: line = all_lines.pop(0) if (not line[34]) or (line[34] == ‘0‘): addr = (line[10]+line[12]+line[14]).replace(‘#‘,‘‘).decode(‘utf-8‘)[-42:].encode(‘utf-8‘) # addr_str = addr.decode(‘utf-8‘) # addr = addr_str[-100:]#地址过长搜索不到 url = ‘http://api.map.baidu.com/geocoder/v2/?address=%s&output=json&ak=%s&callback=showLocation‘ % (addr, apikey) r = requests.get(url=url, proxies=proxies).content status = re.findall(‘"status":(.*?),‘, r, re.S) if int(status[0]) in [0,1,2]: lng = re.findall(‘"lng":(.*?),‘, r, re.S) lat = re.findall(‘"lat":(.*?)}‘, r, re.S) if lng: line[34] = lng[0] line[35] = lat[0] writer.writerow(line) csvFile.flush() else: print line[0] print r writer.writerow(line) csvFile.flush() else: print line[0] print r writer.writerow(line) csvFile.flush() break else: writer.writerow(line) csvFile.flush() except IndexError:#pop完,进程结束 break except Exception as e: print e print ‘结束时间:‘+time.strftime(‘%Y%m%d_%H%M%S‘,time.localtime()) print ‘程序开始时间:‘ + time.strftime(‘%Y%m%d_%H%M%S‘, time.localtime()) with open(u‘D:\\python_project\\yellowPageGeo\\api.txt‘, ‘rb‘) as baiduak: akLines = baiduak.readlines() akLines = [i.strip() for i in akLines] csvFile=open(u‘D:\\python_project\\yellowPageGeo\\result\\Final_Data_sz_nullResult.csv‘,‘wb‘) writer=csv.writer(csvFile) all_lines = [] fsz=open(u‘D:\\python_project\\yellowPageGeo\\Final_Data_sz_null.csv‘,‘rb‘) readersz=csv.reader(fsz) for j in readersz: all_lines.append(j) # fbj=open(u‘C:\\Users\\lwx351192\\Desktop\\Final_Data_bj_dedup1.csv‘,‘rb‘) # readerbj=csv.reader(fbj) # for k in readerbj: # all_lines.append(k) threads=[] lock=threading.Lock() for key in akLines: thread = threading.Thread(target=fuc, args=(key,)) thread.start() threads.append(thread) time.sleep(1) for i in threads:i.join() csvFile.close() fsz.close() print ‘程序结束时间:‘+time.strftime(‘%Y%m%d_%H%M%S‘,time.localtime()) # fbj.close()
参考:
http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-geocoding
获取百度API坐标
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。