谷歌POI抓取

您所在的位置:网站首页 国外数据怎么获取 谷歌POI抓取

谷歌POI抓取

2024-06-25 04:40| 来源: 网络整理| 查看: 265

之前用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