python 爬取百度地图api数据

在想要爬取百度地图中的店铺数据时候往往是加密的 在开发平台中申请自己的账号主要在爬取中需要AK验证 直接上代码代码中只获取店铺名和电话 …其他注释 需要的自己调整 最终结果如图所示

在这里插入图片描述


import requests
import json
import pandas as pd

def request_hospital_data():
    ak="     "  # 换成自己的 AK,需要申请
    url = "http://api.map.baidu.com/place/v2/search?query=律师&page_size=20&scope=1&region=郑州&output=json&ak="+ak
    params = {'page_num':0}  # 请求参数,页码
    request = requests.get(url,params=params)  # 请求数据
    total = json.loads(request.text)['total']  # 数据的总条数
    # print(total)
    total_page_num = (total+19) // 20  # 每个页面大小是20,计算总页码
    items = []  # 存放所有的记录,每一条记录是一个元素
    for i in range(total_page_num):
        params['page_num'] = i
        request = requests.get(url,params=params)
        for item in json.loads(request.text)['results']:
            if "telephone" in item:
                # telephone = item['telephone']
                name = item['name']
                telephone = item.get('telephone', '')
                print('店名:' + name + "\t\t" + '电话:' + telephone)
            else:
                print("")
            # name = item['name']

        #     lat = item['location']['lat']
        #     lng = item['location']['lng']
        #     address = item.get('address', '')
        #     street_id = item.get('street_id', '')
        #     telephone = item.get('telephone', '')
        #     print(name,telephone)
        #     detail = item.get('detail', '')
        #     uid = item.get('uid', '')
        #     # print(name, lat, lng, address, street_id, telephone, detail, uid)
        #     new_item = (name, lat, lng, address, street_id, telephone, detail, uid)
        #     items.append(new_item)

    # 使用pandas的DataFrame对象保存二维数组
    # df = pd.DataFrame(items, columns=['name', 'lat', 'lng', 'adderss', 'street_id', 'telephone', 'detail', 'uid'])
    # df.to_csv('liaozhong_hospital_info.csv', header=True, index=False)

request_hospital_data()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值