首先,我这里有一份相关城市以及该城市的公园数量的txt文件:
其次,利用百度地图API提供的接口爬取城市公园的相关信息。
所利用的API接口有两个:
1、http://api.map.baidu.com/place/v2/search?q=公园®ion=北京&output=json&ak=用户的访问密匙
2、http://api.map.baidu.com/place/v2/detail?uid=xxxxx&output=json&scope=2&ak=用户的访问密匙
第一个API接口可以获得城市公园的一般信息
第二个API接口可以获得城市公园 的详细信息
参数说明:
q:检索的关键字
region:检索的区域(市级以上)
page_size:每一页的记录数量
page_num:分页页码
output:输出格式json/xml
ak:用户的访问密钥,可以在百度地图API平台上进行申请
一、尝试第一个API获取数据并存储至MySQL数据库
下面是对第一个API接口进行访问时返回的结果:
因为我们的最终结果都是要存储在MySQL数据库中,为了操作上的方便,我直接使用了图形管理工具MySQL-Front新建了数据库:baidumap,并在里面新建两张表,表1city用来存储第一个API的结果,表2park用来存储第二个API的结果。表1结构如下:
接下来就是写代码请求数据,并将结果存储在表city中:
import requests
import json
import MySQLdb
from datetime import datetime
#从txt文件中获取相关城市并重新生成一个列表
city_list=[]
with open('cities.txt','r',encoding='utf-8') as f:
for eachline in f:
if eachline !='' and eachline !='\n':