python 乡镇轮廓 高德_Python爬虫终极解决方案-以获取高德地图小区边界为例

本文介绍了如何使用Python的Selenium和BrowserMobProxy工具模拟用户操作,绕过高德地图的反爬策略,获取乡镇轮廓和小区边界的经纬度坐标。通过设置代理和解析HAR文件,提取出坐标串,实现自动化数据抓取。
摘要由CSDN通过智能技术生成

0 前言

本文工具使用anaconda3.5+chrome

一般爬虫分为非可视化爬虫和可视化爬虫。

①非可视化爬虫:通过抓包获取数据接口,使用requests、urlib2、urlib3直接请求页面源码或异步加载的JSON数据。

②可视化爬虫:使用selenium工具模拟人为操作,获取页面源码解析数据。

1 高德地图

最近在研究高德地图小区边界经纬度坐标穿获取的问题,本来想先尝试使用requests,发现高德的反爬措施比一般网站都要严,单独通过非可视化爬虫请求基本上无法获取到想要的数据。

抓包

打开高德地图,在搜索框输入一个小区,如重庆大学B区,如下图所示。

我们发现了是通过这个接口https://ditu.amap.com/detail/get/detail?id=B0017819Q6 GET方法获取到的异步JSON数据,有我们想要的经纬度坐标串。但是想要自动获取有两个前提条件,一是需要知道兴趣面的ID,如上面的重庆大学B区ID B0017819Q6;你可以尝试只请求上述连接,你会发现很快就会失效, 即使携带现有的cookie也不一定能请求成功。因此二是如何能保证高德地图能返回正常的数据。

2 准备工作

SELENIUM

考虑到获取小区边界的事是一劳永逸,数据总量不大,可以降低请求频率。直接使用selenium工具模拟人为操作。

① 安装selenium

#安装selenium

pip install selenium

② 下载chromedriver

ChromeDriver仓库下载对应的版本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值