Я не могу найти это имя класса в HTML для этого URL.Вы можете использовать селектор css, который я покажу ниже, который может быть очищен xmlhttp и, таким образом, избежать открытия браузера
Option Explicit
Public Sub GetDate()
Dim html As HTMLDocument
Set html = New HTMLDocument '< VBE > Tools > References > Microsoft Scripting Runtime
With CreateObject("MSXML2.XMLHTTP")
.Open "GET", "https://www.crunchbase.com/organization/verastem#section-overview", False
.send
html.body.innerHTML = .responseText
End With
ActiveSheet.Range("A1") = html.querySelectorAll(".field-type-date.ng-star-inserted").item(1).innerText
End Sub
Если вы не хотите использовать составные классы, вы также можете использовать
ActiveSheet.Range("A1") = html.querySelectorAll("#section-ipo-stock-price .field-type-date").item(1).innerText
Вы можете увидеть соответствующий HTML здесь:
Обратите внимание, что элемент имеет несколько (составных) классов
<span class="component--field-formatter field-type-date ng-star-inserted" title="Jan 27, 2012">Jan 27, 2012</span>
Есть 3 класса component--field-formatter
;field-type-date
и ng-star-inserted
.Я использую два из них в комбинации в первом решении, которое я даю.Несколько классов популярны в наши дни благодаря универсальности, которую они дают в стилизации страниц, например, они позволяют легко переопределять стили.Вы можете прочитать о css специфичность *, чтобы понять это лучше.
Больше классов может означать, что код немного менее надежен, так как порядок классов может быть изменен, а класс или более может быть удален.Это было поднято @SIM в комментарии к ответу на другой вопрос, касающийся веб-страниц.Таким образом, я предлагаю одно решение с двумя из используемых классов, а другое решение только с одним из используемых классов.
В то время как вы получаете ту же дату для этой страницы просто:
ActiveSheet.Range("A1") = html.querySelector("#section-ipo-stock-price .field-type-date").innerText
Я бы не хотел предполагать, что это всегда будет истинным, так как оно захватывает дату изстрока, где написано "Their stock opened"
.
* https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity
Ссылки:
- querySelectorAll
- css селекторы