-
前言:本文写作的初衷是笔者参与了一个道路实况图的制作项目中,本人负责路况数据的抓取,本来是想要用高德地图的api来进行数据的抓取,但是很不巧的是
…
高德地图的路况查询api服务已经不能用了,于是我只好去找百度地图的api,而csdn上没有一个关于百度地图路况api的详细介绍的,特别是像制作路况图这样的要抓取大量数据的,所以我就只好自己写一篇。
前期准备 首先要找到百度地图api的服务文档,先去百度地图api的官网
因为要抓取大量数据,所以我这边选用的是矩形道路查询的借口
这里是返回示例,也是我认为在写抓取代码中最值得研究的部分
除了这两部分,还有一些要注意的点,首先,每个要使用api的用户需要一个密钥,也就是第二张图里请求参数里的“ak”,这个可以自己去百度地图api里申请。第二每个ak每天只能调用2000次,矩形路况查询的矩形有大小限制,这意味着,我们如果要获取一整个城市的实时路况数据的话,要讲一个城市分成若干个矩形,而这若干个肯定是大于两千个的,所以,要么就用一个ak重复下载,要么就多搞几个ak下载。
那下面就直接上代码了!!!
import pandas as pd
import requests
AkDict = {
1: 'ak1',
2: 'ak2',
3: 'ak3',
4: 'ak4',
5: 'ak5',
6: 'ak6',
7: 'ak7',
8: 'ak8',
9: 'ak9'
} #有条件的朋友可以多加点ak
num = 0
AkNum = 1 #由于一个ak只有2000次调用额度,这里加了一个计数器和一个key来在2000次之后换ak
x = []