谷歌POI抓取 |
您所在的位置:网站首页 › 国外数据怎么获取 › 谷歌POI抓取 |
之前用Python调用谷歌API抓取POI,但是调用API要收费,所以研究了如何免费抓取POI; 由于公司是内网,这里只说下我的抓取方法; 项目采用Python+selenium+browsermobproxy开发; 首先通过调用浏览器,访问谷歌地图; 根据坐标范围计算中心点坐标; 拼接搜索URL:https://www.google.com.hk/maps/search/' + search_key + '/@' + str(zb_center[1]) + ',' + str(zb_center[0]) + ',11z?hl=zh-cn search_key:你要搜索的关键字 zb_center[1]:中心点坐标Y zb_center[0]:中心点坐标X 这样就可以获取地图左边的分页数据; 如何获取每个查询结果的真实坐标? 这里说下我遇到过的坑,以免大家走弯路: (1)访问搜索后,点击等级按钮,放大到19级,获取当前坐标,此法不可行,因为获取的坐标不精准; (2)直接通过详情页的url获取坐标,此法不可行,因为获取的坐标不精准; (3)模拟鼠标右键,获取真实坐标,虽然可以获取真实坐标,但是无法找到当前详情项的地图位置,除非截图当前页面,然后通过图片识别找到对应的关键字,然后找到像素坐标, 最后再模拟鼠标点击右键,此过程太复杂,而且不能百分之百保证能获取真实坐标; (4)打开F12,发现搜索的时候,会调用search方法,返回的JSON文本里面包含了真实坐标,通字符串和正则表达式,去掉前面和后面的干扰文字,最后得到一个完整的JSON,此方法可行; 但是如何获取debug模型下的ajax请求呢? 我们通过browsermobproxy代理软件,在python程序里获取所有的隐式url请求,然后过滤所有的search请求,再requests.get(url)获取json数据,最后存到数据库;
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |