1. 程式人生 > >深圳資料中心API-Python版本

深圳資料中心API-Python版本

# -*- coding: UTF-8 -*-
_author_ = 'zy'
_date_ = '2018/12/10 0010 19:56'
import requests,pymongo,json,time
APPKEY=‘’
appid='357415058'
url='http://opendata.sz.gov.cn/api/{appid}/1/service.xhtml?page={pageid}&rows=100&appKey={appkey}'
def get_data(appid,appkey,dbname,allpagenum):
    # if allpagenum==None:
    #     allpagenum=100

    squared=[x for x in range(allpagenum)]

    client = pymongo.MongoClient('127.0.0.1', 27017)  # 缺少一步驟進行屬性的清洗操作,確定是否有這個值
    db = client.shenzhen

    #pageid = 1

    for page in squared:
        try:
            pjurl=url.format(appid=appid,pageid=page,appkey=appkey)#357415058,
            print('正在抓取頁面'+pjurl)
            result=requests.get(pjurl)
            code=result.status_code
            print('當前狀態'+str(result.status_code))
            content=json.loads(result.text)['data']
            for i in content:
                data={
                    '建築物編號':i['BLDG_NO'],
                    '名稱':i['NOWNAME'],
                    '地址':i['BLDADDR']
                }
                db[dbname].insert_one(data)
                print('插入一條')
        except ConnectionRefusedError:
            print('計算機訪問頻率過快,此時抓取到第'+str(page)+'頁')
            time.sleep(2)

if __name__=='__main__':
    #appid=input('請輸入自己的appid')
    get_data(appid,APPKEY,'housetest',2)