python爬取百度地图商户信息导出csv 您所在的位置:网站首页 python爬取百度地图商家数据 python爬取百度地图商户信息导出csv

python爬取百度地图商户信息导出csv

2024-07-11 21:24| 来源: 网络整理| 查看: 265

import requests import json import pandas as pd import sys def request_hospital_data(query, region): ak="" # 换成自己的 AK,需要申请 ct = (str(region)) keywords=(str(query)) url = ["http://api.map.baidu.com/place/v2/search?query="+keywords+"&page_size=20&scope=1®ion=" + region + "&output=json&ak=" + ak ] params = {'page_num':0} # 请求参数,页码 items = [] # 存放所有的记录,每一条记录是一个元素 # print(str(url)) for url1 in url: #print(url1) request = requests.get(url1,params=params) print(request.text)# 请求数据 total = json.loads(request.text)['total'] # 数据的总条数 # print('总数: '+str(total)) total_page_num = (total+19) // 20 # 每个页面大小是20,计算总页码 for i in range(total_page_num): params['page_num'] = i request = requests.get(url1,params=params) # print(str(json.loads(request.text)['results'])) for item in json.loads(request.text)['results']: if not item: continue else: if "telephone" in item and "name" in item: name = item['name'] telephone = str(item.get('telephone', '').split(",")).strip('[').strip(']')+' ' # province = item['province'] # city = item['city'] # area = item['area'] address = item['address'] #print(name,telephone,province,city,area,address) new_item = (name,telephone,address) #print(new_item) items.append(new_item) #使用pandas的DataFrame对象保存二维数组 df = pd.DataFrame(items, columns=['name','telephone','address']) print(df) df.drop_duplicates(inplace=True) df.to_csv(str(region)+'-'+str(query)+'.csv', index=False,encoding='',mode='a') request_hospital_data(sys.argv[1],sys.argv[2])

以上就是代码 注解都写的很清楚。直接python运行 python3 地点 产品类型即可导出csv到当前目录 注:ak是百度的开发辨识码 可以免费申请 目的应当是标识使用人员的信息 申请填入即可



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有