У меня есть такая структура html:
<table class="series">
<tr>
<th>1.</th>
<td><div><a href="?id=12">1st part</a></div></td>
</tr>
<tr>
<th>2.</th>
<td><div><a href="?id=13">2nd part</a></div></td>
</tr>
<tr>
<th>3.</th>
<td><div><a href="?id=14">3rd part</a></div></td>
</tr>
<tr>
<th>4.</th>
<td><div><a href="?id=15">4th part</a></div></td>
</tr>
<tr>
<th>5.</th>
<td><b>5th part</b></td>
</tr>
<tr>
<th>6.</th>
<td><div><a href="?id=16">6th part</a></div></td>
</tr>
, и мне нужно получить URL href всегда предыдущей части, в которой я сейчас. Как вы можете видеть, в этом html я в 5-й части, поэтому мне нужно вернуть «? Id = 15» как предыдущую часть, где я на самом деле. Дело в том, что текущая часть может быть где угодно 1-й (в этом случае return будет NULL), 2-й, 10-й, 50-й. Или даже весь этот класс может отсутствовать на странице, поэтому return должен быть также NULL.
мой прогресс такой:
Sub GetPageTitle()
Set IE = CreateObject("InternetExplorer.Application")
With IE
.Visible = True
.Navigate "www.something.com/do.php?id=5"
Do Until .ReadyState = 4
DoEvents
Loop
'Series
Set my_data = .Document.getElementsByClassName("series")
Dim link
Dim i As Long: i = 2
For Each elem In my_data
Set link = elem.getElementsByTagName("a")(0)
'copy the data to the excel sheet
Debug.Print link.href
Debug.Print link.innerText
i = i + 1
Next
.Quit
End With
End Sub
- это было для того, чтобы просто отладить каждый href в элементе, однако для l oop не работает, он всегда отлаживается только один раз ...
Я, конечно, пытался заменить (0) на некоторые автоматические c приращения i , но без изменений. А также, если я придумаю отладку, у меня все еще нет идеи получить результат URL предыдущей части: (