Получить значение строки атрибута из html
Я создаю макрос для извлечения данных с веб-сайта с помощью vba . В настоящее время я могу легко получить значение из содержимого таблицы, используя синтаксис элемента, например obj.getElementsByTagName("td").innerText
. Однако, когда в некоторых ячейках есть некоторые данные, не являющиеся внутреннимиText, у меня возникают проблемы. Это вот так:
<img src="/images/amber_pending.gif" border="0" alt="Pending" title="Pending">
Я попытался извлечь значение атрибута из «title», используя синтаксис, который я нашел у других:
For Each tbObj In doc.getElementsByClassName("report removeTdBorder") i = 1 For Each trObj In tbObj.getElementsByTagName("tr") If i >= 3 Then j = 1 For Each tdObj In trObj.getElementsByTagName("td") If j = 1 Then Set imgObj = tdObj.getElementsByTagName("img") dataArray(i, j) = imgObj.getAttribute("title") Debug.Print imgObj.getAttribute("title") ActiveCell.Offset(0, j) = dataArray(i, j) ActiveCell.Offset(0, j).WrapText = False Else dataArray(i, j) = tdObj.innerText Debug.Print i & ", " & j & ": " & dataArray(i, j) ActiveCell.Offset(0, j) = dataArray(i, j) ActiveCell.Offset(0, j).WrapText = False End If j = j + 1 Next tdObj ActiveCell.Offset(1, 0).Activate End If i = i + 1 Next trObj Next tbObj
Но этот код каждый раз dataArray(i, j) = imgObj.getAttribute("title")
и он сказал: «Ошибка времени выполнения» 438: Object не поддерживает это свойство или метод »в строке dataArray(i, j) = imgObj.getAttribute("title")
. Может кто-нибудь мне помочь?
- Результаты VBA, разделяющие результаты импортированной таблицы html в excel
- Веб-скребок VBA / Excel - «Не задана переменная объекта (Ошибка 91)» Случайно происходит
- Комплексная веб-скребка VBA
- Скремблирование innerHTML с сайтов с использованием VBA
- Вытягивание данных со встроенной веб-страницы с помощью VBA Excel
- Python: исключение игнорируется в: <bound method Service .__ del__ of <selenium.webdriver.chrome.service.Service object at 0x0000015937CEA128 >>
- Извлечение данных из Интернета или PDF в Excel (не в стандартных столбцах)
- VBA - используйте getElementById, если не указан ID
- Скопировать текст веб-страницы в одну ячейку в Excel с помощью VBA?
- Excel Web соскабливает поиск элементов в Google и Print Screen to Word
- В Excel VBA, как проверить, полностью ли загружена веб-страница?
- Скремблирование нескольких тегов на одной странице с помощью Excel VBA
- Импорт конкретных веб-данных для Excel с использованием VBA
Set imgObj = tdObj.getElementsByTagName("img")
возвращает коллекцию изображений (даже если их можно найти только один), поэтому вы можете обратиться к определенному изображению, используя (например):
dataArray(i, j) = imgObj(0).getAttribute("title")