屏幕快照Google Maps并粘贴到Excel Document VBA中

时间:2018-12-13 15:14:35

标签: excel vba google-maps selenium web-scraping

我有一个已经在搜索纬度和经度并将其粘贴到我的工作表中的代码,它可以完美地工作。我正在寻找一种获取纬度和经度,加载google地图以及获取google地图页面的屏幕截图或将地图嵌入Excel的方法。

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

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

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

1 个答案:

答案 0 :(得分:0)

您可以使用对象的TakeScreenshot方法

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

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

How to capture the screenshot of a specific element rather than entire page using Selenium Webdriver?

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