Python网络爬虫:某度地图API获取城市餐厅数据 并提取内容展示结果

hello,大家好,我是wangzirui32,最近笔者的文章总访问突破1万了,这一路来感谢大家的支持,谢谢!这也是我的第60篇原创博文,希望你能认真的学习完它。
开始学习吧!

1. 百度API接口

1.1 注册或登录账户

百度地图提供了一系列API接口,供开发者使用。
首先,你需要去https://passport.baidu.com/v2/?reg注册一个账户,如果你已经有了一个账户,可以点击https://passport.baidu.com/v2/进行登录。
然后,你需要输入开发者资料,就可以创建自己的应用了!

1.2 创建自己的应用

访问http://lbsyun.baidu.com/apiconsole/key#/home(必须登录),然后点击“创建应用”红色按钮,设置应用名称为“我的应用”(也可以自己命名),开启所有基础服务,如果你并不想对IP做出限制,就可以在“IP白名单”中输入“0.0.0.0/0”即可,如图:
百度API点击“提交”,即可创建应用,如图:(这里展示的是博主之前注册的应用)
应用
每个应用都有AK,这类似于密钥,只要拥有密钥,即可访问应用。

2. 编写Python代码

2.1 爬取API代码

from requests import get
from json import loads, dump

params = {
    
    
    "q": "餐厅",   # 查询的建筑
    "region": "北京",   # 查询的城市
    "output": "json",   # 规定输出格式 可以为json或xml
    "page_size": "20",  # 设置返回20条信息
    "ak": "你的AK"   # 填入你的AK
}

# 百度API接口网址
url = "http://api.map.baidu.com/place/v2/search"

reponse = get(url, params=params) # 开始请求API

data = loads(reponse.text)["results"] # 获取返回的数据

# 存储数据
with open("data.json", 'w') as f:
    dump(data, f)
    print("已经存储了", len(data), "条json数据!")

运行代码,目录下创建了一个json文件,里面为北京市的餐厅数据。

2.2 解析代码数据

先来看data.json文件中的一段json数据:

{
    
    
	"name":"眉州东坡酒楼(国奥村店)", # 餐厅名称
	"location":{
    
     # 经纬度
		"lat":40.014776,
		"lng":116.387952
	},
	"address":"北京市朝阳区林萃东路国奥中心A座1楼", # 具体地址
	"province":"北京市",
	"city":"北京市",
	"area":"朝阳区",
	"street_id":"d51b117f32042f082ad7ab17",
	"telephone":"(010)57393280,(010)57393286,(010)57393281", # 热线电话
	"detail":1,
	"uid":"d51b117f32042f082ad7ab17"
}

根据这些,编写分析代码:

from json import load

# 读取数据
with open("data.json", "r") as f:
    data = load(f)

# 遍历数据
for i in data:
    name = i['name'] # 获取餐厅名称
    location = i['location'] # 经纬度获取
    lat = location['lat'] # 纬度
    lng = location['lng'] # 经度
    address = i['address'] # 地址
    telephone = i['telephone'] # 热线
    
    # 打印结果
    print("餐厅名称:", name)
    print("餐厅经度:", lng, ",纬度:", lat)
    print("地址:", address)
    print("热线电话:", telephone)
    print(20 * "-") # 20个-为数据分隔

运行代码,输出:(这里展示2项)

餐厅名称: 眉州东坡酒楼(国奥村店)
餐厅经度: 116.387952 ,纬度: 40.014776
地址: 北京市朝阳区林萃东路国奥中心A座1楼
热线电话: (010)57393280,(010)57393286,(010)57393281
--------------------
餐厅名称: 潇湘府(上地店)
餐厅经度: 116.308366 ,纬度: 40.049949
地址: 北京市海淀区东北旺路2号
热线电话: (010)82897458,(010)82897358
--------------------

好了,编写完毕!


今天的课程就到这里,这节课可能有亿点长,不过还是希望你能学习到其中的精髓!拜拜!

猜你喜欢

转载自blog.csdn.net/wangzirui32/article/details/115406027
今日推荐