目标:爬取百度地图上的兴趣点
前期准备工作:
1 注册百度地图开放平台账号
2 申请key
3 安装pycharm或者vscode
百度地图的兴趣点检索有三种方式,一种是按照行政区域检索,一种是按照圆形区域检索,还有一种是按照矩形区域检索。三种检索方式本质上是一样的,只是在形式上有所不同,下面小编就以矩形区域检索为例,给大家介绍一下,供大家参考学习。
首先引入request库。requests是使用Apache2 licensed 许可证的HTTP库,用python编写,可以用来爬取网址上的资源。话不多说,下面只需要简单几行代码即可将内容爬取下来。
import requestsdef search(): # 行政区域爬取地址 urlArea = "http://api.map.baidu.com/place/v2/search?query=ATM机&tag=银行&" "region=北京&output=json&ak=key" # 矩形区域爬取地址 urlRectangle = "http://api.map.baidu.com/place/v2/search?query=餐厅&bounds=39.80,116.5,39.90,116.67&" "output=json&page_size=20&page_num=0&ak=key" # 圆形区域爬取地址 urlCircle = "http://api.map.baidu.com/place/v2/search?query=银行&location=39.915,116.404&radius=2000&" "output=json&ak=key" try: # get请求地址解析爬取内容,超时未30s r = requests.get(urlArea, timeout=30) # 如果有错误抛出异常 r.raise_for_status() # 将爬取内容更改为utf-8编码 r.encoding = r.apparent_encoding # 输出爬取内容 print(r.text) except: return "爬取异常"
上面代码中的key是百度开发者中申请的key(如何注册百度地图开放平台、申请key,可自行百度或者关注小编持续为您更新)
其中代码里需要解释的地方在下图中展示
下面展示行政区域地址的爬取结果为
在HIJson中将json字符串格式化更容易查看
好了,今天就给大家分享到这里。这里仅展示如何爬取想要的内容,还可以继续对爬取结果进行进一步操作,如将内容格式化编辑后保存到数据库等。限于篇幅这里就不做介绍了。
写在最后,网络爬虫的确能爬到大量的内容,但是这里也会涉及到是否侵权的问题,稍微提一下,在爬取之前可以先看一下网站的Robots协议,哪些内容可以爬取,哪些不可以爬取。总之“盗亦有道”,尽量给自己避免不必要的麻烦。本文例子仅限于学习科研之用。
想要完整代码以及HiJson软件的小伙伴可以关注私信我。