Страницы: 1
RSS
Атрибуты Тега <a>. Получить текст между символами ><
 
Рабтаю с HTML 4.01
Есть тег:
Код
<a class="simple_link" 
href="https://dsm.commercehub.com/dsm/gotoOrderDetail.do?Hub_PO=559357595&_ga=2.132603470.1354807687.1507797218-293739742.1507797218">2580148999026</a>

Пытаюсь с помошью VBA "достать" текст между символами >< это число: 2580148999026

Фрагмент текста, который используется для этого:

Код
Dim oIE As Object, sHTML As String
Set oIE = CreateObject("InternetExplorer.Application") oIE.Visible = 0 s = Cells(1, 5)   ' Читаем ссылку на сраницу с листа EcxeloIE.Navigate (s) Do While oIE.busy Or (oIE.ReadyState <> 4): DoEvents: LoopSet maPageHtml = oIE.DocumentSet Hinput = maPageHtml.GetElementsByTagName("A") 
    Sheets("Test").Cells(1, 4) = Hinput(i).href    Sheets("Test").Cells(i1, 5) = Hinput(i).ID

Вижу на листе Test:

https://dsm.commercehub.com/dsm/gotoOrderDetail.do?Hub_PO=559357595
Значение атрибута href не вызывает вопросов, значение атрибута id - пусто, но вопрос в другом:
Есть такой атрибут, который позволяет получить значение между символами ><?
На WEB странице выводится значение, в данном случае число 2580148999026, как ссылка, при нажатии на которую собственно и выбирается PO.
Возможно я просто "зациклился" именно на таком подходе к получению этого значения, через аттрибут тега и есть другой способ получения этого знчения?
Спасибо
Изменено: StasYS - 12.10.2017 11:39:46
 
В ячейке А1 указанный Вами текст, тогда:
Код
MsgBox Split(Split(Range("A1"), ">")(1), "<")(0)
 
как вариант данные в A1 результат в O1
Код
Function vvv(t$)
  With CreateObject("VBScript.RegExp"): .Pattern = ">(\d+)<"
  vvv = .Execute(t)(0).Submatches(0)
  End With
End Function
Изменено: sv2013 - 12.10.2017 00:40:01
 
Код
ТекстСсылки = GetTags(ВашHTML$, "a", "", "", "ConvertToText 1")

http://excelvba.ru/code/html
 
Большое спасибо за предложенные варианты решения, но они исходят из того, что мне уже удалось прочитать в ячейку А1 текст, который включает число 2580148999026, Но в результате работы
Код
Sheets("Test").Cells(1, 4) = Hinput(i).href 
в ячейку D1 попадает только:
https://dsm.commercehub.com/dsm/gotoOrderDetail.do?Hub_PO=559357595
т.е. текст до символа ">" а меня интересут тест между символами >< , в данном случае: >2580148999026<
Как видно из приведенного примера кода VBA, значение поля href извлекается из тега <a с использованием соответствующего атрибута с тем-же именем href.
В идеале я хотел-бы извлекать информацию между символами ><  тоже с использованием атрибута. Конечно если это возможно в принципе.
Возможно я просто "зациклился" именно на таком подходе к получению этого значения, через аттрибут тега и есть другой способ получения этого значения?
Спасибо.
 
Игорь, как я увидел по вашей ссылке:
Код
' ищем гиперссылку (тег a класса blue-link), и возвращаем атрибут href
link$ = GetTags(txt, "a", "class", "blue-link", "href")
Предполагается использовать атрибут href, а он необходимую информацию не содержит.
 
Стас, я вас написал пример использования ДЛЯ ВАШЕГО СЛУЧАЯ:
Код
ТекстСсылки = GetTags(ВашHTML$, "a", "", "", "ConvertToText 1")
 
Код
.GetElementsByClassName("simple_link").innerText
 
kavaka,
Спасибо огромное!
Это работает даже в виде:
Код
Sheets("Test").Cells(i, 4) = Hinput(i).innerText
т.е. как атрибут тега <A>!

Спасибо!
Страницы: 1
Наверх