Как получить мета-свойство из URL с помощью VBA? - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь узнать цену товара по URL, и он имеет

<meta property="product:price:amount" content="47.2" />

Я попробовал следующее, чтобы получить его, но он не работает

Set price = ie.Document.querySelector("product:price:amount")
worksheet.Cells(i, "D").Value = price.innerText

А также

Set Doc = ie.Document
Set metaElements = Doc.all.tags(meta_tag)

   For Each element In metaElements

    If element.name = meta_name Then
    keywd = element.Content
    wks.Cells(i, "C").Value = keywd
    End If

   Next

Ответы [ 3 ]

0 голосов
/ 12 декабря 2018

Сначала вы должны получить метатеги:

Dim metaElements
Set metaElements = ie.Document.GetElementsByTagName("meta")

Затем просмотреть их в поиске свойства:

Dim element
For Each element In metaElements
    If element.Name = "product:price:amount" Then
        Dim price 
        price = element.Content
    End If
Next
0 голосов
/ 12 декабря 2018

У вас есть несколько вариантов, но если вы хотите сослаться на product...;это значение атрибута property, поэтому вам понадобится селектор attribute = value css.Селекторы атрибутов обозначены [].Кроме того, во избежание путаницы с синтаксисом селектора класса psuedo значение атрибута, содержащее :, должно быть полностью заключено в ''.

ie.document.querySelector("meta[property='product:price:amount']").Content
0 голосов
/ 12 декабря 2018

Я думаю, что, поскольку этот фрагмент HTML не является объектом или элементом, вы не сможете использовать этот метод (объект будет иметь div и свойство id или class, которое вы можете искать).Что вам нужно сделать, это найти элемент, в котором он находится, и получить к нему доступ таким образом.Примерно так: ie.document.getElementsByClassName("class name like Product info or something maybe")(0).getElementsByTagName("meta").textcontent

Примечание: .textcontent быстрее и неформатирован в отличие от .innertext

, если у div нет идентификатора или свойства класса, тогда это ребенок, а выпридется переходить от родителя, используя .Children(0) и / или .nextElementSibling

Этот веб-сайт содержит много полезной информации, которая помогла бы мне посмотреть здесь, так как без большего количества HTML я не могу помочь:

http://automatetheweb.net/common-vba-methods-properties-web-automation/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...