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

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&region=" + 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是百度的开发辨识码 可以免费申请 目的应当是标识使用人员的信息 申请填入即可

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值