Получите доступ к VBA-коду, чтобы извлечь результат из карты Google с веб-сайта калькулятора миль AA - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь использовать vba (Access 2013) для автоматизации веб-сайта поиска маршрута (https://www.theaa.com/driving/mileage-calculator.jsp)

У меня есть некоторый рабочий код, который в командной кнопке формы позволяет мне:
1. открыть внешний экземпляр Internet Explorer (в отличие от элемента управления браузера)
2. введите почтовый индекс / адресную информацию из моей базы данных
3. нажмите на ссылку, которая добавляет дополнительные поля назначения, если требуется
4. изменить цену за милю по умолчанию из текстового поля в моей форме
5. нажмите кнопку «Получить маршрут»

При нажатии «Get Route» создается страница с результатами поиска, которая включает статическую карту Google с шагами маршрута, отмеченными на фиолетовой линии ABC и т. Д. Я хочу сделать это изображение и использовать его в моей БД. Форма с использованием веб-браузера или элемента управления полем изображения, чтобы я мог использовать его в отчете, когда я провел поиск наиболее экономичного маршрута.

Я посмотрел на DOM Explorer и исходный код, но не могу понять, как это сделать, или это возможно? Существует div "gmnoprint", который выделяется, когда карта выбрана, а в исходном коде есть ссылка на "mapContainer", который, кажется, находится в правой части последовательности действий / результатов.

Я не знаю, как сверлить ссылки и создать код, который позволит мне поместить карту в мою форму. Выбор кода, который я разместил, является частью процесса выбора, который определяет, что может быть введено в мои текстовые поля, код изображения GoogleMap предположительно будет идти туда, где указано?

Я бы сказал, что я ученик-энтузиаст и умеренный пользователь без какого-либо официального обучения Буду очень признателен за любые ответы.

Dim IE As New InternetExplorer
Dim doc As HTMLDocument
Dim RDate As String
On Error GoTo Errorhandler

RDate = Me.TxtRouteDate
'................................................................

Select Case Me.TxtNoSum
    Case Is = IsNull(Me.TxtPC1) Or IsNull(Me.TxtPC2)
        MsgBox "Please Enter at least 2 Postcodes"
    Case Is <= 2
        MsgBox "Please Enter at least 2 Postcodes"
    Case Is = 3
        IE.Visible = True
        IE.Navigate "https://www.theaa.com/driving/mileage-calculator.jsp"
        IE.Top = 20
        IE.Left = 50
        IE.Height = 1300
        IE.Width = CInt(Int((1000 * Rnd()) + 1))
        While IE.Busy
            DoEvents
        Wend
        Set doc = IE.Document
        With doc
            'Clears previous searches
            doc.all("mcDeleteRoutesLink").Click
            'Inserts info into web site text boxes.
            doc.getElementById("RouteDate").Value = RDate
            doc.getElementById("RouteFrom").Value = Me.TxtPC1
            doc.getElementById("RouteTo").Value = Me.TxtPC2
            doc.getElementById("fuelPricePerLitre").Value = Me.TxtPPL
        End With
        While IE.Busy
            DoEvents
        Wend
        'Clicks "Get Route" Button
        Dim btn As Object
        Set btn = doc.getElementById("getRouteWrapper").Children(0)
        If Not btn Is Nothing Then
            btn.Click
            While IE.Busy
                DoEvents
            Wend
            ' Inserts distance recorded by AA mileage calculator into text control on my form
            Set htmlDist = doc.all("routeDistanceTotal")
            If Not htmlDist Is Nothing Then
                Me.TxtDistance = htmlDist.innerText
            'Google image code to go here after map page loads?
            End If
        End If
    (Next Case)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...