python - 如何从我的谷歌地图自动提取数据(KMZ?JSON?)
问题描述
寻求一些关于如何从“我的谷歌地图”中自动检索数据的一般方法的指导。虽然我可以轻松地将任何给定层导出到 KML/KMZ,但我正在寻找一种在更大的脚本中执行此操作的方法,这将自动化该过程。最好是,我什至不必登录到地图本身来完成数据提取。
那么,您认为最好的方法是什么?我正在考虑的两个可能选项是 1) 使用 selenium/beautiful soup 来模拟 Google Maps 上的页面点击并导出 KMZ 或 2) 使用 Python Google Maps API。不过,我不确定这个 API 是否可以通过脚本下载 Google Maps 图层。
需要明确的是,数据已经在地图中 - 我只是在寻找一种导出它的方法。它可以是 KMZ 导出,或者更好的是 GeoJSON。
欢迎任何想法或建议!先感谢您。
解决方案
我使用浏览器的检查功能来找出我有兴趣从中获取数据的网站的幕后情况,这使我找到了这个解决方案。
我使用 Selenium 登录并浏览所述网站,然后将我的 cookie 传输到 Python 的 Requests 包。我有请求向服务器发送特定查询,其响应为 JSON 形式。通过前面提到的检查功能,我能够弄清楚要发送什么查询以及响应的形式。一旦我得到 JSON 格式的响应,我就会使用 Python 的 JSON 包将其转换为 Python dict,以便根据需要使用。
听起来您可能不一定需要 Selenium,但听起来 Requests 包对您的用例很有用。我认为你的第一步是弄清楚当你与网站自然交互以获得你想要的东西时服务器响应的形式。
希望这在一定程度上有所帮助!
推荐阅读
- ruby-on-rails - 具有 1 对 1 关联的 Rails STi
- r - 将变量重新编码为 R 中带有级别名称的因子
- vue.js - 当 Vue-Cli 项目通过 tomcat 服务时服务器返回 404
- c# - 编码 API 可以解码流/非连续字节吗?
- javascript - 在javascript中使用Name而不是Id获取输入类型文本的值
- swift - Swift - 动画 ImageView
- ios - point 和 hitTest 有什么区别以及如何使用 hitTest?
- python - 根据另一个列条件将列表替换为数据框中的另一个列表
- python - 当我的函数 A 只需要在 B 中运行时,如何将它作为函数 B 的参数?(Python)
- android - 为什么我的应用程序的某些部分在一个上下文中工作而在另一个上下文中不工作?