Необходимо получить данные изнутри Div Id - PullRequest
0 голосов
/ 10 апреля 2019

Я хочу получить информацию о отметке времени изнутри идентификатора Div.

К сожалению, фактическая ссылка работает только в сети, но это раздел кода, который инспектор показывает для отметки времени. Я использую эту страницу, чтобы получить метрики для нашего отдела на работе, но я извлекаю данные из файла CSV. Веб-страница html показывает, когда данные обновлялись в последний раз, сообщая мне, являются ли данные CSV, которые у меня есть, текущими, но мы все еще не обновлены. Мне было интересно, если бы я мог настроить запрос, чтобы посмотреть только ту часть HTML-кода с веб-страницы. в настоящее время мой код для просмотра страницы в полном объеме это. Это работает, чтобы получить всю страницу, и покажет мне отметку времени, но она довольно медленная, и мне было интересно, как получить только отметку времени, и, возможно, это сработает быстрее?

<div id="timestamps">
    <!--
    [/reports/timestampDrilldown?resourceVersionKeysString=H4sIAAAAAAAAAK2QzS4EQRSFr_ETC_G3s7eSVI2eaa07FggRom0MEna3a2739Kj-UVUzxiwkFp5AiGcQSwnxAN7GG1joJkPs3UUt7jlV53z1-A6jWsFMG7vIOyaWfBt1q0HmdfP69u7l2R4G6OXnEwAwvboG5VQKf4AJ9rOUh0ImPM-UQclNnJA2mOSad5RskcxJ8X3SWUcJOvgRD5Xc_tLmG6RilHEfA0kD3xEpHWfpLl083YjOydXHQwUqPkxJ1GajReKUmptoyMC0X1aulpWr5WbFhxn195GdpoHZb5vENKo2jIrTaKWXFwCTv8Dl7Vb7amj32Mx9044DDLVH7l_eegYIk35qFaC8a_GtDX_vB4ntpAVRKmig-Bhkao-KFKHXo0hRhCZTfNHDoI7CZeiFFrNrVGNB3XWYt1yzncBzhHCX9BlcFh9bnmOD-OeFf4mn5dC2mmHInNCtMbvuIsO6WGTOEtmuILvpWVbvEzuwcCgHAgAA&warehouseId=BFI4]
    -->
    Data last checked at <d class="resourceDrilldownLink" title="57 minutes ago">2019/04/09 17:14 PDT</d>
</div>
 Sub DataLastChecked()
'
' DataPull Macro
'
Application.ScreenUpdating = False
Dim SD As Date
Dim ED As Date
Dim STS As Integer
Dim ETS As Integer
Dim STE As Integer
Dim ETE As Integer
SD = Worksheets("Variables").Range("A2").Value
ED = Worksheets("Variables").Range("A2").Value
STS = Worksheets("Variables").Range("B2").Value
ETS = Worksheets("Variables").Range("C12").Value
STE = Worksheets("Variables").Range("D2").Value
ETE = Worksheets("Variables").Range("D2").Value
Application.ScreenUpdating = False
'On Error GoTo Errorcatch

  If Worksheets("DataLastChecked").Visible = xlSheetHidden Then
  Worksheets("DataLastChecked").Visible = xlSheetVisible
 End If
 Sheets("DataLastChecked").Activate
 Sheets("DataLastChecked").Select
 Cells.Select
 Selection.ClearContents


 Sheets("DataLastChecked").Select
 With ActiveSheet.QueryTables.Add(Connection:= _
    "URL;https://fclm-portal.amazon.com/reports/processPathRollup?reportFormat=HTML&warehouseId=BFI4&maxIntradayDays=1&spanType=Intraday&startDateIntraday=" & Year(SD) & "%2F" & Month(SD) & "%2F" & Day(SD) & "&startHourIntraday=" & (STS) & "&startMinuteIntraday=" & (STE) & "&endDateIntraday=" & Year(ED) & "%2F" & Month(ED) & "%2F" & Day(ED) & "&endHourIntraday=" & (ETS) & "&endMinuteIntraday=" & (ETE) & "&adjustPlanHours=true&_adjustPlanHours=on&_hideEmptyLineItems=on&employmentType=AllEmployees", _
    Destination:=Range("$A$1"))
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingNone
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False

       Columns("A:A").Select
Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
    Semicolon:=False, Comma:=True, Space:=False, Other:=False, FieldInfo _
    :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
    Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
    ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1)), _
    TrailingMinusNumbers:=True

Sheets("Recap").Select
End With
If Worksheets("DataLastChecked").Visible = xlSheetVisible Then
  Worksheets("DataLastChecked").Visible = xlSheetHidden
  End If
End Sub

1 Ответ

0 голосов
/ 10 апреля 2019

Если вы можете выполнить xmlhttp запрос , вы можете использовать имя класса элемента.Этот код будет идти в стандартном модуле.Вы открываете VBE с помощью Alt + F11 , затем щелкаете правой кнопкой мыши в окне Project Explorer и добавляете стандартный модуль, например Модуль 1. Поместите туда код.Затем вы можете привязать выполнение этого кода к кнопке или событию.Измените ActiveSheet для явной ссылки на имя листа.

Option Explicit
Public Sub GetTimeStamp()
    Dim html As HTMLDocument
    Set html = New HTMLDocument                  '<  VBE > Tools > References > Microsoft HTML Object Library
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", "url", False
        .send
        html.body.innerHTML = .responseText
    End With
    ActiveSheet.Range("A1") = html.querySelector(".resourceDrilldownLink").innerText
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...