设置请求参数(url,headers,cookies,post或get验证等)访问目标站点的服务器;解析服务器返回的文档,提取需要的信息。
python
网络爬虫的本质就是两步:
而API的工作机制与爬虫的两步类似,但也有些许不同:
1、API
一般只需要设置url
即可,且请求方式一般为“get”
方式2、API
服务器返回的通常是json
或xml
格式的数据,解析更简单
本篇我们就演示如何运用Python结合百度地图API来批量获取想要的信息。
访问百度地图需要一个信令(ak
), 具体申请百度api
的ak
网上都有教程, 这里就不叙述了…Place API
及Web
服务API
打开百度地图API
的POI
模块,网址:/index.php?title=webapi/guide/webservice-placeapi,这个页面详细介绍了Place API
的请求参数及返回数据的情况。今天我们使用百度地图api的地点检索
import requestsimport jsonimport pymysqlak = '你自己申请的百度地图api的ak'url = 'http://api./place/v2/search?query=药店®ion=郑州&output=json&output=json&ak={}&page_num={}&page_size=20'# query=药店 是你想查询的内容 # region=郑州 是你想查询的城市# page_num={} 是页码, 意思是第几页# page_size=20是每页显示的个数, 最大是20个i = 0 # 这里可以使用for循环 ,不过容易出现并发量超过约定,所以我这里先不用循环了 response = requests.get(url.format(ak,i))# 对网页进行请求jsondata = json.loads(response.text)# 对下载的内容进行loads一下for j in jsondata['results']:name = j.get('name')print('商店名字是:', name)# print(type(name))address = j.get('address')print('详细地址是:', address)tel = j.get('telephone')print('联系电话是:', tel)print('*' * 50)# 我做的是存入mysql的操作, 具体结果如下: