Я пытаюсь свести статистику игроков в теннис с этого сайта в документ Excel для удобства просмотра: http://www.tennisabstract.com/cgi-bin/player.cgi?p=DominicThiem (пример игрока).
Я уже несколько раз проверял VBA, так что я не совсем новичок в этом, но я знаю, что эта проблема, скорее всего, связана с моей нехваткой знаний, чем с внутренней проблемойприложения, которые я использую!Когда я debug.print
внутренний HTML вышеупомянутой веб-страницы, HTML-код не совпадает с тем, когда я проверяю элемент на странице.Это полный HTML-код, возвращаемый скребком, который явно не завершен:
<TABLE width=1280>
<TBODY>
<TR>
<TD align=left>This site is slow and ugly in Internet Explorer. In <A href="https://www.google.com/intl/en/chrome/browser/">Chrome</A> or <A href="http://www.mozilla.org/en-US/firefox/new/">Firefox</A>, it is much faster and a bit less ugly.<BR> </TD>
<TD align=right><A href="http://www.tennisabstract.com/blog">HeavyTopspin.com</A> | <A href="https://twitter.com/#!/tennisabstract">Twitter</A> </TD></TR></TBODY></TABLE>
<DIV id=header>
<TABLE width=1240>
<TBODY>
<TR>
<TD class=headline align=left>
<H1><SPAN class=blackheader><A href="http://www.tennisabstract.com/">tennis<SPAN style="COLOR: blue">abstract</SPAN>.com</SPAN></H1></A></TD>
<TD id=playersearch style="VERTICAL-ALIGN: top" align=right> </TD></TR>
<TR>
<TD> </TD>
<TD> </TD></TR>
<TR>
<TD style="VERTICAL-ALIGN: top" align=left><SPAN id=bio> </SPAN> <SPAN id=tabResults class=tabview style="BACKGROUND-COLOR: #e6eeee"> <B>Singles Results</B> </SPAN> <SPAN id=tabHead class="tablink tabview" style="BACKGROUND-COLOR: #e6eeee"> <B>Head-to-Heads</B> </SPAN> <SPAN id=tabEvents class="tablink tabview" style="BACKGROUND-COLOR: #e6eeee"> <B>Event Records</B> </SPAN> <BR><SPAN id=tabDubs class="tablink tabview" style="POSITION: relative; TOP: 5px; BACKGROUND-COLOR: #e6eeee"> <B>Doubles Results</B> </SPAN><SPAN id=tabDubsSpacer> </SPAN> <SPAN id=shotsHere></SPAN></TD>
<TD id=wonloss style="VERTICAL-ALIGN: top" align=right> </TD></TR>
<TR>
<TD id=tabmenu style="VERTICAL-ALIGN: top" align=left> </TD>
<TD> </TD></TR>
<TR>
<TD id=playernews colSpan=2> </TD></TR></TR></TBODY></TABLE></DIV>
<DIV id=main>
<TABLE id=maintable width=1280>
<TBODY>
<TR id=tabletoggles>
<TD> </TD>
<TD id=tablelabel> </TD>
<TD id=abovestats class=abovestats align=right> <SPAN class="revscore likelink"></SPAN> <B>Stats:</B> <SPAN class="statsa stattab">Overview</SPAN><SPAN class=statspacer> | </SPAN><SPAN class="statso stattab">Serve</SPAN> | <SPAN class="statsr stattab likelink">Return</SPAN> | <SPAN class="statsw stattab likelink">Raw</SPAN> </TD></TR>
<TR>
<TD id=footer class=footer> </TD>
<TD id=stats class=stats colSpan=2>
<TABLE id=matches>
<TBODY></TBODY></TABLE></TD></TR>
<TR>
<TD id=belowmenus> <BR> <BR> <BR> <BR> </TD>
<TD id=belowmatches colSpan=2> </TD></TR></TBODY></TABLE></DIV>
<DIV></DIV>
Я пытаюсь почистить «главную» таблицу в нижней половине страницы, которая показывает последние совпадения игрока(id = "соответствует", 6-я строка снизу приведенного выше HTML).Когда я проверяю элемент на самой веб-странице, таблица выглядит так, что ее очень легко очистить, но мой отчет не возвращает полный HTML, поэтому я не могу ссылаться на что-либо в своем коде.
Iпосчитал, что это может быть связано с тем, что мой XML не загружается полностью, поэтому попытался this , который возвращает тот же HTML.
Вот код, который я использую до сих пор:
Sub TennisStats()
Dim XMLPage As New MSXML2.XMLHTTP60
Dim HTMLDoc As New MSHTML.HTMLDocument
Application.ScreenUpdating = False
player1 = ThisWorkbook.Worksheets(1).Range("B1").Value
player1 = Replace(player1, " ", "")
With XMLPage
.Open "GET", "http://www.tennisabstract.com/cgi-bin/player.cgi?p=" & player1
.send
HTMLDoc.body.innerHTML = .responseText
End With
Debug.Print HTMLDoc.body.innerHTML
End Sub