1. 程式人生 > >python 通過騰訊地圖API獲取全國關鍵詞(樓盤/商場)位置資訊

python 通過騰訊地圖API獲取全國關鍵詞(樓盤/商場)位置資訊

到騰訊地圖API官網https://lbs.qq.com/index.html 申請一張賬號,申請開發者金鑰(Key):申請金鑰。

 

以下為搜尋全國萬達的地理位置資訊

#!coding=utf-8
import requests
import re
import random
import time
import json
from requests.packages.urllib3.exceptions import InsecureRequestWarning
import pandas as pd
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)  ###禁止提醒SSL警告

key=''##開發者金鑰ID

class dzdp(object):

    def __init__(self,keyword):
        self.keyword=keyword
        self.citylist=[
        '北京','天津','上海','重慶','合肥','宿州','淮北','阜陽','蚌埠','淮南','滁州','馬鞍山','蕪湖','銅陵','安慶','黃山','六安','池州','宣城','亳州','廈門','福州','南平','三明','莆田','泉州','漳州',
        '龍巖','寧德','蘭州','嘉峪關','金昌','白銀','天水','酒泉','張掖','武威','慶陽','平涼','定西','隴南','甘南','廣州','深圳','清遠','韶關','河源','梅州','潮州','汕頭','揭陽','汕尾','惠州','東莞',
        '珠海','中山','江門','佛山','肇慶','雲浮','陽江','茂名','湛江','貴陽','六盤水','遵義','安順','畢節','銅仁','石家莊','邯鄲','唐山','保定','秦皇島','邢臺','張家口','承德','滄州','廊坊','衡水',
        '哈爾濱','齊齊哈爾','黑河','大慶','伊春','鶴崗','佳木斯','雙鴨山','七臺河','雞西','牡丹江','綏化','鄭州','開封','洛陽','平頂山','安陽','鶴壁','新鄉','焦作','濮陽','許昌','漯河','三門峽','南陽',
        '商丘','周口','駐馬店','信陽','濟源','鞏義','鄧州','永城','汝州','武漢','十堰','襄樊','荊門','孝感','黃岡','鄂州','黃石','咸寧','荊州','宜昌','隨州','仙桃','天門','潛江','長沙','衡陽',
        '張家界','常德','益陽','岳陽','株洲','湘潭','郴州','永州','邵陽','懷化','婁底','長春','吉林市','白城','松原','四平','遼源','通化','白山','南昌','九江','景德鎮','鷹潭','新餘','萍鄉','贛州',
        '上饒','撫州','宜春','吉安','南京','徐州','連雲港','宿遷','淮安','鹽城','揚州','泰州','南通','鎮江','常州','無錫','蘇州','瀋陽','大連','朝陽','阜新','鐵嶺','撫順','本溪','遼陽','鞍山','丹東',
        '營口','盤錦','錦州','葫蘆島','濟南','青島','聊城','德州','東營','淄博','濰坊','煙臺','威海','日照','臨沂','棗莊','濟寧','泰安','萊蕪','濱州','菏澤','西安','延安','銅川','渭南','咸陽','寶雞',
        '漢中','榆林','商洛','安康','太原','大同','朔州','陽泉','長治','晉城','忻州','呂梁','晉中','臨汾','運城','成都','廣元','綿陽','德陽','南充','廣安','遂寧','內江','樂山','自貢','瀘州','宜賓',
        '攀枝花','巴中','達州','資陽','眉山','雅安','昆明','曲靖','玉溪','麗江','昭通','思茅','臨滄','保山','杭州','寧波','湖州','嘉興','舟山','紹興','衢州','金華','台州','溫州','麗水','西寧',
        '海口市','三亞市','南寧','桂林','柳州','梧州','貴港','玉林','欽州','北海','防城港','崇左','百色','河池','來賓','賀州','呼和浩特','包頭','烏海','赤峰','呼倫貝爾','通遼','烏蘭察布','鄂爾多斯',
        '巴彥淖爾','銀川','石嘴山','吳忠','中衛','固原','拉薩','烏魯木齊','克拉瑪依','石河子','阿拉爾','圖木舒克','五家渠','北屯','香港','澳門'
        ]


    ##城市內搜尋結果
    def search_qqmap(self):
        df = pd.DataFrame(columns=('ID', '店名', '地址', '電話', '類別', '緯度', '經度', '郵編', '省', '市', '區'))
        x=0
        for i in self.citylist:
            p=1
            while p>0:
                time.sleep(0.22)
                url='https://apis.map.qq.com/ws/place/v1/search?boundary=region({},0)&page_size=20&page_index={}&keyword={}&orderby=_distance&key={}'.format(i,p,self.keyword,key)
                req=requests.get(url=url,verify=False).json()
                data=req['data']
                print(p,data)
                if data!=[]:
                    for j in data:
                        id=j['id']  ##ID
                        title=j['title']  ##店名
                        address=j['address']  ##地址
                        tel=j['tel']   ##電話
                        category=j['category']   ##類別
                        lat=j['location']['lat']  ##緯度
                        lng=j['location']['lng']  ##經度
                        adcode=j['ad_info']['adcode']  ##郵編
                        province=j['ad_info']['province']   ##省
                        city=j['ad_info']['city']   ##市
                        district=j['ad_info']['district']  ##區
                        print(id, title, address, tel,category, lat, lng,adcode, province, city,district)
                        df.loc[x] = [id, title, address, tel,category, lat, lng,adcode, province, city,district]
                        x = x + 1
                    p = p + 1
                else:
                    p=-1
        df.to_excel(self.keyword+'.xlsx',index=False, encoding="GB18030")

if __name__ == '__main__':
    keyword='萬達'
    dp=dzdp(keyword)
    dp.search_qqmap()