Internet explorer 在Internet Explorer中检测字体颜色

Internet explorer 在Internet Explorer中检测字体颜色,internet-explorer,vba,web-crawler,Internet Explorer,Vba,Web Crawler,我目前正在用VBA在Excel中构建一个爬虫程序,在几个在线参考资料的帮助下,从一个公共网站抓取表数据 然而,我需要一个额外的步骤,我需要识别我爬行的字体中使用的字体的颜色 例如:如果其中一些单词是红色的,而其余的是黑色的,我将能够识别它们。如何检测字体颜色 下面是我代码的一部分 For Each tbl In doc.getElementsByTagName("TABLE") tabno = tabno + 1 If tabno = 5 Then

我目前正在用VBA在Excel中构建一个爬虫程序,在几个在线参考资料的帮助下,从一个公共网站抓取表数据

然而,我需要一个额外的步骤,我需要识别我爬行的字体中使用的字体的颜色

例如:如果其中一些单词是红色的,而其余的是黑色的,我将能够识别它们。如何检测字体颜色

下面是我代码的一部分

For Each tbl In doc.getElementsByTagName("TABLE")
            tabno = tabno + 1
            If tabno = 5 Then
            nextrow = nextrow + 1
            Set rng = ws.Range("B" & nextrow)
            rng.Offset(, -1) = "Table " & tabno
            For Each rw In tbl.Rows
                If count = 1 Then
                For Each cl In rw.Cells
                    rng.Value = cl.outerText
                    Set rng = rng.Offset(, 1)
                    i = i + 1
                Next cl
                nextrow = nextrow + 1
                Set rng = rng.Offset(1, -i)
                i = 0
                End If
                count = count + 1
            Next rw
            End If
        Next tbl

假设字体元素始终是单元格中您关心的第一个也是唯一一个元素,您可以

Dim clr As String

For Each tbl In doc.getElementsByTagName("TABLE")
    For Each rw In tbl.Rows
        For Each cl In rw.Cells
           ActiveCell.Offset(1, 0).Select
           ActiveCell.Value = cl.outerText

            If Not IsNull(cl.FirstChild.GetAttribute("color")) Then
               ActiveCell.Font.Color = toRgb(cl.FirstChild.GetAttribute("color"))
            End If
        Next
    Next
Next

...

Function toRgb(hx As String) As Long
    Dim r As Long, g As Long, b As Long
    r = Val("&H" & Mid$(hx, 2, 2))
    g = Val("&H" & Mid$(hx, 4, 2))
    b = Val("&H" & Mid$(hx, 6, 2))
    toRgb = RGB(r, g, b)
End Function

谢谢你们的关心和帮助。非常感谢

我已经通过从HTML页面抓取“源代码”并将表中的值分为我想要区分的子字符串来解决这个问题

以下是我所做的工作:

rng.Value = cl.outerText
temp = cl.outerHTML
If InStr(temp, "color=") <> 0 Then
rng.Value = rng.Value + " *this value has a different font color from the rest"
End If
rng.Value=cl.outerText
温度=cl.outerHTML
如果仪表(温度,“颜色=”)为0,则
rng.Value=rng.Value+“*此值的字体颜色与其他值不同”
如果结束

注意。

指出代码中的错误。什么不起作用?你试过什么?嗨,我的代码很好用。我需要了解的是如何让VBA识别IE中使用的字体颜色:)那么您尝试过什么?您指的是IE中的文本吗?你能给我举个例子吗?谢谢你的关注。html中的文本是表格形式,或者,行中的一个数据,或者,具有与其他数据不同的字体颜色。例如,示例文本。我不知道如何让VBA识别它爬行的字体的颜色。嗨,Alex K.,我尝试了你的代码,但似乎遇到了一个错误:运行时错误“438”:对象不支持此属性或方法