如何从特定类中获取特定链接? [英] How to get a particular link from a specific class?

查看:194
本文介绍了如何从特定类中获取特定链接?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想从特定的

<tr class="even">
    <td>
        <a href="/italy/serie-a-2015-2016/">Serie A 2015/2016</a>
    </td>

这就是我写的:

Sub ExtractHrefClass()

    Dim ie As Object
    Dim doc As HTMLDocument
    Dim class As Object
    Dim href As Object

    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.navigate Range("D8")
    Do
        DoEvents
    Loop Until ie.readyState = READYSTATE_COMPLETE
    Set doc = ie.document
    Set class = doc.getElementsByClassName("even")
    Set href = class.getElementsByTagName("a")
    Range("E8").Value = href
    ie.Quit

End Sub

但遗憾的是对象不支持此属性或方法(错误438): p>

But unfortunately there is a mistake Object doesn't support this property or method (Error 438) on the line:

    Set href = class.getElementsByTagName("a")

UPDATE 1

我根据@RyszardJędraszyk回答修改了代码,但没有输出O_o我在哪里做错了?

I modified the code as per @RyszardJędraszyk answer, but no output come out O_o Where am I doing wrong?

Sub ExtractHrefClass()

    Dim ie As Object
    Dim doc As HTMLDocument
    Dim href As Object
    Dim htmlEle As Object

    Set ie = CreateObject("InternetExplorer.Application")
    ie.Visible = True
    ie.navigate Range("D8")
    Do
        DoEvents
    Loop Until ie.readyState = READYSTATE_COMPLETE And ie.Busy = False
    Set doc = ie.document
    Set href = doc.getElementsByTagName("a")
    For Each htmlEle In href
        If htmlEle.className = "even" Then
            Range("E8").Value = htmlEle
        End If
    Next
    ie.Quit

End Sub

更新2

正如@dee在评论中要求的那样,有代码来自网页 http://www.soccer24.com/italy/serie-a / archive /

As @dee requested in comment, there is the code from the web page http://www.soccer24.com/italy/serie-a/archive/

<tbody>
    <tr>
        <td>
            <a href="/italy/serie-a/">Serie A 2016/2017</a>
        </td>
        <td></td>
    </tr>
    <tr class="even">
        <td>
            <a href="/italy/serie-a-2015-2016/">Serie A 2015/2016</a>
        </td>
        <td>
            <span class="team-logo" style="background-image: url(/res/image/data/UZbZIMhM-bsGsveSt.png)"></span><a href="/team/juventus/C06aJvIB/">Juventus</a>
        </td>
    </tr>
    <tr>
        <td>
            <a href="/italy/serie-a-2014-2015/">Serie A 2014/2015</a>
        </td>
        <td>
            <span class="team-logo" style="background-image: url(/res/image/data/UZbZIMhM-bsGsveSt.png)"></span><a href="/team/juventus/C06aJvIB/">Juventus</a>
        </td>
    </tr>

我只需提取该行: / italy / serie-a- 2015-2016 /

推荐答案

这对我有用:

With CreateObject("MSXML2.XMLHTTP")
    .Open "GET", "http://www.soccer24.com/italy/serie-a/archive/", False
    .Send
    MsgBox Split(Split(Split(.ResponseText, "<tr class=""even"">", 2)(1), "<a href=""", 2)(1), """", 2)(0)
End With

您需要的程序可能如下所示:

The procedure you need might look like:

Sub ExtractHrefClass()

    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", Range("D8").Value, False
        .Send
        Range("E8").Value = Split(Split(Split(.ResponseText, "<tr class=""even"">", 2)(1), "<a href=""", 2)(1), """", 2)(0)
    End With

End Sub

这篇关于如何从特定类中获取特定链接?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆