详解昨日的爬取过程
作者:互联网
arr = sheet.read_excel()
读取表格的地址代码
url1="https://restapi.amap.com/v3/place/text?key=807c3aaf8b58a288aa83b28d11c817e4&keywords=景区&types=风景名胜&city=" url2="&output=JSON&children=&offset=20&page=" url3="&extensions=all"
链接的分段,用于添加变量
循环各下级行政区进行POI检索
for i in range(0,len(arr)): #当前行政区 city=arr[i] #因为官方对API检索进行了45页限制,所以只要检索到45页即可 for page in range(1,46): #若该下级行政区的POI数量达到了限制,则警告使用者,之后考虑进行POI类型切分 if page==45: print("警告!!POI检索可能受到限制!!") #构造URL thisUrl=url1+city+url2+str(page)+url3 #获取POI数据 data=requests.get(thisUrl) #转为JSON格式 s=data.json() #解析JSON aa = s["pois"] #若解析的JSON为空,即当前行政区的数据不够45页(即没有达到限制),返回 if len(aa)==0: break #对每条POI进行存储 for k in range(0,len(aa)): b={} b["name"]=aa[k]["name"] b["type"]=aa[k]["type"] b["address"]=aa[k].get("address") b["adname"]=aa[k]["adname"] b["location"]=aa[k]["location"] b["citycode"]=aa[k]["citycode"] b["adcode"]=aa[k]["adcode"] b["pname"]=aa[k]["pname"] b["cityname"]=aa[k]["cityname"] x.append(b) num+=1 print("爬取了 "+str(num)+" 条数据") print(city); time.sleep(0.5)//让程序不至于因访问过快被封杀
将数据结构化存储至规定目录的json文件中
result = json.dumps(x, sort_keys=True, indent=2) with open('./jingqu/datapoi.json','w',encoding='utf-8') as file: for i in result: file.write(i) print('数据已写入json文件...')
标签:aa,city,json,详解,POI,print,过程,page,昨日 来源: https://www.cnblogs.com/weidewozi/p/14907982.html