【问题标题】:Screenshotting Google Maps and Pasting into Excel Document VBA [duplicate]截屏谷歌地图并粘贴到 Excel 文档 VBA [重复]
【发布时间】:2018-12-13 15:14:34
【问题描述】:

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

【问题讨论】:

  • 我之前看过那个帖子。在那篇文章中,他们不是在桌面上安装 Google 地球并使用它来显示交互式地图吗?我的目标只是一个静态屏幕截图,我不必在某人的桌面上安装任何东西,因为多个人将在不同的桌面上使用它。
  • 否,第一个答案使用网络浏览器控件来动态显示谷歌地图的最新地图。如果您有屏幕截图,它将是静态的并且永远不会更新,webbrower 控件需要互联网连接,但随后会显示最新的地图。不知道这是否满足您的需求。

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


【解决方案1】:

可以使用对象的 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 调用有一些方法可以截取屏幕截图,然后裁剪图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-08
    • 2017-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多