Первая публикация в Stack Overflow и начинающий кодировщик VBA.
Я написал код на VBA для очистки данных с веб-сайта. Я могу получить всю необходимую мне информацию, кроме одного элемента, который по какой-то причине продолжает возвращать пустое значение, когда я использую Debug.Print
Код HTML и URL-адрес, который я не могу извлечь, следующее: URL: linkedin.com/school/mcgill-university/people/?keywords=zkzk
<div class="container p0">
<div class="display-flex full-width justify-space-between align-items-center pt5 ph5">
<span class="t-20 t-black">
0 alumni
</span>
Я хотел бы распечатать «0 выпускников», поэтому я написал следующий код VBA:
Dim aEle As Object
Dim Number As String
Dim objIE As InternetExplorer
Number = aEle.objIE.document.getElementsByClassName("display-flex full-width justify-space-between
align-items-center pt5 ph5").getElementsByTagName("span")(0).innerText
Debug.Print Number
Но все, что я получаю, это пустое значение ( т. е. ничего не отображается в непосредственном окне, и когда я наводю курсор на (Число), отображается значение как "")
Работающая часть кода HTML следующая:
<div id="ember1418" class="org-people-profile-card ember-view">
<section id="ember1419" class="artdeco-card artdeco-card--with-hover ember-view"><!---->
<div class="org-people-profile-card__profile-info">
<div id="ember1425" class="artdeco-entity-lockup__title ember-view">
<a data-control-name="people_profile_card_name_link" href="/in/x-060210b2/" id="ember1426" class="link-without-visited-state ember-view">
<div id="ember1427"
class="org-people-profile-card__profile-title t-black lt-line-clamp lt-line-clamp--single-line ember-view"> jane doe
<!----></div>
</a>
И код VBA, который я написал для распечатки «jane doe», выглядит следующим образом:
For Each aEle In objIE.document.getElementsByClassName("org-people-profile-card ember-view")
Name = aEle.getElementsByClassName("artdeco-entity-lockup__title ember-view")(0).innerText
Debug.Print Name
Next
Jane Doe распечатывает как ожидалось.
Меня смущает несоответствие; хотя они оба являются элементами класса, содержащими внутренний текст, и я использую одну и ту же команду VBA "getElementsbyClassName", один работает, а другой нет? Есть ли что-то особенное в первом разделе кода HTML? Нужно ли мне изменять код VBA, чтобы можно было распечатать «0 выпускников»?
PS Я сократил исходный код VBA и включил только те части, которые имеют отношение к вопросу.