首页 > 解决方案 > 截图谷歌地图并粘贴到 Excel 文档 VBA

问题描述

我有一个已经搜索纬度和经度并粘贴到我的工作表的代码,它运行良好。我正在寻找一种方法来获取该纬度和经度,加载谷歌地图,然后截取谷歌地图页面的屏幕截图或将地图嵌入 Excel。

在下面的代码中,我有一个代码已经为任何输入地址加载了谷歌地图,但我不知道如何截取地图的屏幕截图(最好没有页面侧面的输入信息)或将地图嵌入到Excel。底部的额外代码用于来自 USGS 网站的请求/响应,该网站提取某个位置的官方地震信息,但不应影响代码的顶部。

请注意,如果可能的话,我希望这只是地图的静态屏幕截图。如果可能的话,我不想在多个桌面上安装 Google 地球以便能够将交互式地图嵌入到工作表中。

Option Explicit

Public Sub Seismicgrab()

Dim browser As New ChromeDriver
Dim URL As String
Dim ws As Object
Dim xmlhttp As New MSXML2.XMLHTTP60

browser.Get "http://www.google.com/maps?q=" & Range("H13").Value

browser.Wait 5000

Cells(19, 13).Value = browser.URL

browser.Close

URL = Range("M24").Value
xmlhttp.Open "GET", URL, False
xmlhttp.Send
Worksheets("Title").Range("M25").Value = xmlhttp.responseText
End Sub

标签: excelvbagoogle-mapsseleniumweb-scraping

解决方案


您可以使用对象的 TakeScreenshot 方法

browser.TakeScreenshot.SaveAs ".....jpg"   '<== put your path and file name here

为了获得更大的灵活性,例如裁剪,请考虑切换语言并使用以下任何一种方法:

如何使用 Selenium Webdriver 捕获特定元素而不是整个页面的屏幕截图?

此外,我相信使用标准 VBA 和 API 调用可以截取屏幕截图然后裁剪图像。


推荐阅读