Excel 刮谷歌地图目的地

Excel 刮谷歌地图目的地,excel,vba,web-scraping,Excel,Vba,Web Scraping,我想做一个代码,用于抓取谷歌地图的目的地。我可以使用https://www.google.com/maps/dir/// 然后我需要输入信息到“发件人”和“收件人”字段,选择“旅行模式”,然后单击“搜索”WebBrowser1嵌入到UserformDistanceSite。不知道如何在谷歌地图上点击驾驶按钮 这是我目前的代码: Private Sub CommandButton4_Click() 'On Error Resume Next With DistanceSite.WebBr

我想做一个代码,用于抓取谷歌地图的目的地。我可以使用
https://www.google.com/maps/dir///

然后我需要输入信息到“发件人”和“收件人”字段,选择“旅行模式”,然后单击“搜索”
WebBrowser1
嵌入到Userform
DistanceSite
。不知道如何在谷歌地图上点击驾驶按钮

这是我目前的代码:

Private Sub CommandButton4_Click()

'On Error Resume Next

   With DistanceSite.WebBrowser1

        While .ReadyState <> 4
          DoEvents
        Wend

        With .Document

            .querySelector("div.gstl_50 .sbib_b [class=tactile-searchbox-input]").Value = ThisWorkbook.Sheets("Other Data").Range("BY17").Value

            .querySelector("div.gstl_51 .sbib_b [class=tactile-searchbox-input]").Value = ThisWorkbook.Sheets("Other Data").Range("BY18").Value

            .querySelector("div.widget-directions-travel-mode-switcher-container [class=directions-travel-mode-icon directions-drive-icon]").Click

        End With

        End With

    'If Err <> 0 Then

       'MsgBox "There was an error running the code. Check your Internet connection. Please try one more time!"
       'Else

    'End If

    'On Error GoTo 0

End Sub
Private子命令按钮4\u单击()
'出现错误时,请继续下一步
使用DistanceSite.WebBrowser1
While.ReadyState 4
多芬特
温德
随附.文件
.querySelector(“div.gstl_50.sbib_b[class=tactile searchbox input]”)。Value=ThisWorkbook.Sheets(“其他数据”)。范围(“BY17”)。值
.querySelector(“div.gstl_51.sbib_b[class=tactile searchbox input]”)。Value=ThisWorkbook.Sheets(“其他数据”)。范围(“BY18”)。值
.querySelector(“div.widget-directions-travel-mode-switcher-container[class=directions-travel-mode-icon directions-drive icon]”。单击
以
以
'如果错误为0,则
“MsgBox”运行代码时出错。请检查您的Internet连接。请再试一次!”
”“否则呢
"完"
'在出现错误时转到0
端接头

您的类选择器选择子类时不正确。我猜,如果不看,你已经错过了一个或多个复合类。在这种情况下,将复合类中的单个类(如果您选择了正确的一个)与父类结合使用就足够了:

.widget-directions-travel-mode-switcher-container .directions-drive-icon
您还可以使用属性=值选择器

ie.document.querySelector("[aria-label=Driving]").click
ID可能是动态的,这就是我在下面的示例中使用占位符属性的原因。在英国进行测试

Option Explicit
Public Sub ClickButton()
    Dim ie As New InternetExplorer
    With ie
        .Visible = True
        .Navigate2 "https://www.google.com/maps/dir//"

        While .Busy Or .readyState < 4: DoEvents: Wend

        With .document
            .querySelector("[placeholder='Choose starting point, or click on the map...']").Value = "Aylesbury"
            .querySelector("[placeholder='Choose destination...']").Value = "Brentford"
            .querySelector("[aria-label=Driving]").Click
        End With

        Stop '<delete me later

        .Quit
    End With
End Sub
选项显式
公共子点击按钮()
Dim ie成为新的InternetExplorer
与ie
.Visible=True
.导航2“https://www.google.com/maps/dir//"
当.Busy或.readyState<4:DoEvents:Wend时
随附.文件
.querySelector(“[placeholder=”选择起点,或单击地图…”)”。Value=“Aylesbury”
.querySelector(“[placeholder='Choose destination…]”)。Value=“Brentford”
.querySelector(“[aria label=Driving]”)。单击
以
停下来