Excel VBA - 网站废料

时间:2017-02-08 22:37:10

标签: html excel-vba web-scraping vba excel

我花了几个小时寻找答案,但我找不到答案。

我正在尝试从此website

中提取数据

我已经设法获得了我需要的大部分内容,但我发现很难定位特定的数据点。

我用过的最接近的代码是:

 hDoc.getElementsByClassName("table-matches__odds")(0).outerHTML

输出以下不是我想要的

  

class = table-matches__odds data-odd-max =“5.50”data-odd =“5.19”

我只想要data-odd=部分,所以5.19但是无法弄清楚如何定位它。我可以使用instr来提取我需要的数据,但是有更具体的方法吗?

对于我想要提取的部分,html看起来像这样:

<TH class=h-text-left colSpan=8><A href="about:/soccer/england/premier-league/">Premier League 2016/2017</A></TH></TR>
<TR data-dt="5,2,2017,17,00">
<TD>Leicester</TD>
<TD><STRONG>Manchester United</STRONG></TD>
<TD class=h-text-center>0:3</TD>
<TD class=table-matches__odds data-odd-max="5.50" data-odd="5.19"></TD>
<TD class=table-matches__odds data-odd-max="4.00" data-odd="3.79"></TD>
<TD class="table-matches__odds colored"><SPAN><SPAN><SPAN data-odd-max="1.80" data-odd="1.72"></SPAN></SPAN></SPAN></TD>
<TD><A href="about:/soccer/england/premier-league/leicester-manchester-united/G0fXjMCK/">details</A></TD>
<TD class=h-text-right>05.02.2017</TD></TR>
<TR data-dt="24,9,2016,13,30">
<TD><STRONG>Manchester United</STRONG></TD>
<TD>Leicester</TD>
<TD class=h-text-center>4:1</TD>
<TD class="table-matches__odds colored"><SPAN><SPAN><SPAN data-odd-max="1.73" data-odd="1.69"></SPAN></SPAN></SPAN></TD>
<TD class=table-matches__odds data-odd-max="4.05" data-odd="3.85"></TD>
<TD class=table-matches__odds data-odd-max="5.75" data-odd="5.34"></TD>
<TD><A href="about:/soccer/england/premier-league/manchester-united-leicester/dOBfynxf/">details</A></TD>
<TD class=h-text-right>24.09.2016</TD></TR>

非常感谢任何帮助

由于

1 个答案:

答案 0 :(得分:0)

您可以将其声明为字符串

Dim sResult as String

然后用这个得出5.19值:

sResult = Mid(sResult, InStr(sResult, "data-odd=""") + Len("data-odd="""), 4) - 这假设它总是2位小数,并且它也存储为字符串而不是双数

出于兴趣,您是否正在尝试建立一个安全的筛选器?